foreach循环返回零结果

Epi*_*pic 1 php

我从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)

我错过了什么吗?

Ani*_*wat 5

您只获得第一个对象的值.$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)