我从json文件中提取数据,我得到的结果没有问题,但我只得到1个结果.所以当我做一个foreach循环时,我没有得到任何结果.
json结果:
{
"channels": [
{
"position": 4,
"id": "901",
"name": "Away"
},
{
"position": 0,
"id": "900",
"name": "General"
},
{
"position": 1,
"id": "889",
"name": "HQ"
},
{
"position": 2,
"id": "888",
"name": "Base"
}
],
}
Run Code Online (Sandbox Code Playgroud)
我可以回应一下:
echo $json_array['channels'][0]['position'];
echo $json_array['channels'][0]['id'];
echo $json_array['channels'][0]['name'];
Run Code Online (Sandbox Code Playgroud)
但无论我尝试什么,我只得到1个结果,我做一个foreach循环,它什么也没做
foreach($json_array as $item) {
echo $item['channels'][0]['position'];
echo $item['channels'][0]['id'];
echo $item['channels'][0]['name'];
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
您只获得第一个对象的值.$json_array['channels']是一个对象数组,您需要遍历这些对象.这应该工作:
foreach($json_array['channels'] as $item) {
echo $item['position'];
echo $item['id'];
echo $item['name'];
}
Run Code Online (Sandbox Code Playgroud)
为了清楚地理解,这就是它如何与for循环一起工作:
for($index = 0; $index < count($json_array['channels']); $index++) {
echo $json_array['channels'][$index]['position'];
echo $json_array['channels'][$index]['id'];
echo $json_array['channels'][$index]['name'];
}
Run Code Online (Sandbox Code Playgroud)