【问题标题】:How can I access to a nested objects如何访问嵌套对象
【发布时间】:2016-04-18 08:25:47
【问题描述】:
在数据库中:
{"49530fe2e872288d92042b3059f31566":{"filename":"49530fe2e872288d92042b3059f31566.jpg"},"4b7dc54328383c294ceb884e9691838c":{"filename":"4b7dc54328383c294ceb884e9691838c.jpg"}}
使用打印后:
Array (
[49530fe2e872288d92042b3059f31566] => Array (
[filename] => 49530fe2e872288d92042b3059f31566.jpg
)
[4b7dc54328383c294ceb884e9691838c] => Array (
[filename] => 4b7dc54328383c294ceb884e9691838c.jpg
)
)
如何访问filename?
【问题讨论】:
标签:
php
arrays
json
object
【解决方案1】:
使用foreach循环遍历数组得到filename。
<?php
$j = '{"49530fe2e872288d92042b3059f31566":{"filename":"49530fe2e872288d92042b3059f31566.jpg"},"4b7dc54328383c294ceb884e9691838c":{"filename":"4b7dc54328383c294ceb884e9691838c.jpg"}}';
$a = json_decode($j, TRUE);
if (! empty($a)) {
foreach ($a as $e) {
echo '<pre>';print_r($e['filename']);echo '</pre>';
}
}
?>
【解决方案2】:
如果您不知道数组的键,请使用 foreach 循环。
$arr = array (
'49530fe2e872288d92042b3059f31566' => array (
'filename' => '49530fe2e872288d92042b3059f31566.jpg'
),
'4b7dc54328383c294ceb884e9691838c' => array (
'filename' => '4b7dc54328383c294ceb884e9691838c.jpg'
)
); //To obtain this array from json , do **$arr = json_decode($json, true);**
foreach($arr as $val){
$filename = $val['filename']; //There you go
}