为什么这段代码无法正常工作或我做错了什么?
$json = json_encode($myInstance->getData($id));
$result = json_decode($json,true);
$i = 0;
foreach ($result as $value) {
echo '<div>'.$value[$i]['name'].'</div>';
$i++;
}
第一个值显示正确,但不会迭代!
是$value[$i]['name']
不是为迭代而构建的吗?
它仅打印array[0]
而非array[1]
。感谢。
答案 0 :(得分:1)
您最好使用嵌套的foreach循环,通常不是很好的编码练习,但它会完成您尝试做的工作。
$json = json_encode($myInstance->getData($id));
$result = json_decode($json,true);
foreach ($result as $value) {
foreach($value as $value_detail) {
echo '<div>'.$value_detail['name'].'</div>';
}
}
您的代码将遍历JSON中的所有第一级项目,并显示第一个项目的第一个名称,第二个项目的第二个名称,第三个项目的第三个名称等。
您遇到的问题可能是因为$json
数组是3D,例如
[0 =>
[
['name' => 'Foo'], ['name' => 'Bar']
]
]
如果是这种情况,那么您可能会发现foreach循环可以
foreach($result[0] as $value) {
echo '<div>'.$value['name'].'</div>';
}
尝试var_dump($result);
查看数据的样子。