PHP数组转对象之后,怎么用对象的方式访问数据

    $fields = M('fields') -> select();
    $aa = json_encode($fields);
    $bb = json_decode($aa);
    
    $bb -> 0;//获取不到任何数据,应该怎么写呢
    
    print_r($bb);
    结果为:

Array
(

[0] => stdClass Object
    (
        [fields_id] => 1
        [name] => 勘探
    )

[1] => stdClass Object
    (
        [fields_id] => 2
        [name] => 钻完井
    )

[2] => stdClass Object
    (
        [fields_id] => 3
        [name] => 采油采气
    )

[3] => stdClass Object
    (
        [fields_id] => 4
        [name] => 油气储运
    )

[4] => stdClass Object
    (
        [fields_id] => 5
        [name] => 地面工程
    )

[5] => stdClass Object
    (
        [fields_id] => 6
        [name] => 销售炼化
    )

[6] => stdClass Object
    (
        [fields_id] => 7
        [name] => 新能源
    )

[7] => stdClass Object
    (
        [fields_id] => 8
        [name] => 综合
    )

)

里面的数据怎么取啊?求写法。比如要取[0]下面所有的数据怎么写?要是取[0]
下面的[name]又怎么写呢?

阅读 3.3k
3 个回答

楼上稍微有点问题,换我这样: $bb[0]->

你或许是想这样用:json_decode($aa, true);

在编程的时候注意查文档:

API

json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)

json_decode — 对 JSON 格式的字符串进行解码

说明

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
接受一个 JSON 编码的字符串并且把它转换为 PHP 变量

参数

json
待解码的 json string 格式的字符串。

这个函数仅能处理 UTF-8 编码的数据。

Note:

PHP implements a superset of JSON as specified in the original » RFC 7159.

assoc
当该参数为 TRUE 时,将返回 array 而非 object 。

$bb ->[0]['name'];一样,跟普通数组类似,就是多了->

$bb[0]->name

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题