5 回答
TA贡献2003条经验 获得超2个赞
要迭代多维数组,可以使用RecursiveArrayIterator
$jsonIterator = new RecursiveIteratorIterator( new RecursiveArrayIterator(json_decode($json, TRUE)), RecursiveIteratorIterator::SELF_FIRST);foreach ($jsonIterator as $key => $val) { if(is_array($val)) { echo "$key:\n"; } else { echo "$key => $val\n"; }}
输出:
John:status => WaitJennifer:status => ActiveJames:status => Activeage => 56count => 10progress => 0.0029857bad => 0
TA贡献1797条经验 获得超4个赞
最优雅的解决方案:
$shipments = json_decode(file_get_contents("shipments.js"), true);
print_r($shipments);
请记住,json文件必须以UTF-8编码而不使用BOM。如果文件有BOM,则json_decode将返回NULL。
或者:
$shipments = json_encode(json_decode(file_get_contents("shipments.js"), true));
echo $shipments;
TA贡献1816条经验 获得超6个赞
没有人指出你开始的“标签”是错误的,完全超出我的范围。您正在使用{}创建对象,而可以使用[]创建数组。
[ // <-- Note that I changed this
{
"name" : "john", // And moved the name here.
"status":"Wait"
},
{
"name" : "Jennifer",
"status":"Active"
},
{
"name" : "James",
"status":"Active",
"age":56,
"count":10,
"progress":0.0029857,
"bad":0
}
] // <-- And this.
通过此更改,json将被解析为数组而不是对象。使用该数组,您可以执行任何操作,例如循环等。
- 5 回答
- 0 关注
- 2011 浏览
添加回答
举报