PHP多数组中的读取项

PHP多数组中的读取项,php,arrays,json,Php,Arrays,Json,我想使用foreach在PHP中阅读以下JSON信息。我是新手,需要一些帮助。出于隐私原因,我只提供了一小部分数据样本 最终目标是获取服务器阵列中的所有“id”和“real_address” [ { "id":"d87df8g7sdfg89", "status":false, "servers":[ { "status":false, "platform":null,

我想使用foreach在PHP中阅读以下JSON信息。我是新手,需要一些帮助。出于隐私原因,我只提供了一小部分数据样本

最终目标是获取服务器阵列中的所有“id”和“real_address”

[
   {
      "id":"d87df8g7sdfg89",
      "status":false,
      "servers":[
         {
            "status":false,
            "platform":null,
            "server_id":"adsfasdfasdfasdf",
            "virt_address6":"fd00:c0a8:f800:0:192:168:248:5",
            "virt_address":"192.168.248.5",
            "name":"Private",
            "real_address":null,
            "connected_since":null,
            "id":"aasdfasdfasdfsafde",
            "device_name":null
         }
      ],
   },
   {
      "id":"asd89asd8f",
      "status":true,
      "servers":[
         {
            "status":true,
            "platform":"linux",
            "server_id":"fasdsdfasdfasdf",
            "virt_address6":"fd00:c0a8:f800:0:192:168:248:3",
            "virt_address":"192.168.248.3",
            "name":"Private",
            "real_address":"5.5.5.52",
            "connected_since":1447406908,
            "id":"asdfasdfasdfasdf",
            "device_name":"thriving-fields-2667"
         }
      ],
   }
]

您可以使用
json\u解码

$data = json_decode($json, true);

foreach ($data as $value) {
    foreach ($value['servers'] as $server) {
        echo $server['real_address'];
    }
}

像这样的

$items = json_decode($json);
foreach($items as $item){
    foreach($item->servers as $server)
    {
        echo $server->server_id . " - ". $server->status;
    }
}

如果您有PHP>=5.5.0 for
array\u column()
,您可以尝试以下方法:

$array = json_decode($json, true);

foreach (array_column($array, 'servers') as $server) {   
    echo $server['real_address'];
}

这是完美的,但我忘了添加我也需要ID。我在原始请求中更新了示例数据。您可以使用$server['id]获取id;必须使用$value[id],因为它不在服务器阵列中。但这让我走上了正确的道路。谢谢你的帮助。