如何从PHP中的json_decode访问嵌套数组? [英] How do I access nested arrays from a json_decode in PHP?

查看:307
本文介绍了如何从PHP中的json_decode访问嵌套数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经花了几个小时在这里,并且我在这里读了很多关于stackoverflow的答案,但没有一个有帮助.

I have spent hours at this and I've read loads of answers here on stackoverflow and none have helped.

到目前为止,我只能为该示例打印集市广场-克利夫登.

All I've been able to do so far is to print Market Square - Clifden for this example.

$obj = json_decode($data);
$obj = $obj[0];
print $obj->{'title'};

我不知道如何访问嵌套在图像"中的名称",因此可以获得 market_square_clifden.jpg .

I can't figure out how to access "name" nested inside "image" so I can get market_square_clifden.jpg.

我要感谢一些指针.

array(1){
        [0]=>array(12){
            ["_id"]=>array(1){
                ["$oid"]=>string(24)"51f674e4e4b0066cc8197033"
            }
            ["display"]=>int(1)
            ["title"]=>string(23)"Market Square - Clifden"
            ["class"]=>string(21)"market_square_clifden"
            ["icon"]=>string(16)"camera_small.png"
            ["image"]=>array(4){
                ["name"]=>string(25)"market_square_clifden.jpg"
                ["top"]=>string(16)"7.98958587646484"
                ["left"]=>string(18)"397.98614501953125"
                ["maxwidth"]=>string(16)"599.777777671814"
            }
            ["locs"]=>array(2){
                ["lng"]=>float(-10.022516)
                ["lat"]=>float(53.488111)
            }
            ["pov"]=>array(3){
                ["heading"]=>string(17)"-14.1950626239811"
                ["pitch"]=>string(18)"-6.368221166504443"
                ["zoom"]=>string(18)"0.8399999999999999"
            }
            ["photo"]=>array(3){
                ["takenby"]=>string(13)"Robert French"
                ["sentinby"]=>string(34)"The Lawrence Photograph Collection"
                ["description"]=>string(263)"Clifden (Irish: An Clochán, meaning 'stepping stones' is a town on the coast of County Galway, Ireland and being Connemara's largest town, it is often referred to as 'the Capital of Connemara'. It is located on the Owenglen River where it flows into Clifden Bay."
            }
            ["date"]=>array(2){
                ["posted"]=>string(53)"Mon Jul 29 2013 14:53:53 GMT+0100 (GMT Daylight Time)"
                ["circa"]=>string(9)"1880-1900"
            }
            ["comments"]=>array(1){
                [0]=>array(2){
                    ["poster"]=>string(0)""
                    ["comment"]=>string(0)""
                }
            }
            ["tags"]=>array(1){
                [0]=>array(2){
                    ["name"]=>string(0)""
                    ["slug"]=>string(0)""
                }
            }
        }
    }

推荐答案

正如评论者所述,请修正您的变量格式-这样有助于更快地获得答案.

As the commenters mentioned, please fix your variable formatting - it helps get answers more quickly.

假设您使用默认的json_decode设置,则每个JSON对象将成为一个PHP对象. (请参阅php.net上的json_decode文档.)

Assuming you are using default json_decode settings, each JSON object will become a PHP object. (See the json_decode documentation at php.net.)

$obj = json_decode($data);
$obj = $obj[0];
// title attribute
$obj->title
// image object
$obj->image
// image name
$obj->image->name

如果您将所有内容强制为关联数组:

If you force everything to be associative arrays:

$obj = json_decode($data,true);
$obj = $obj[0];
// title attribute
$obj['title']
// image object
$obj['image']
// image name
$obj['image']['name']

这篇关于如何从PHP中的json_decode访问嵌套数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆