我有这个json文件,我想要返回所有项目的"host_name“值。下面是我的php代码,我尝试了一些方法,使用true来解码数组中的json,或者不使用它,并使用foreach(),但是我不能这样做。
{
"href": "https://webservice:8080",
"items": [
{
"Hosts": {
"cluster_name": "cluster1",
"host_name": "server1"
},
"href": "https://server1:8080"
},
{
"Hosts": {
"cluster_name": "cluster1",
"host_name": "server2"
},
"href": "https://server2:8080"
},
{
"Hosts": {
"cluster_name": "cluster1",
"host_name": "server3"
},
"href": "https://server3:8080"
}
]
}这是我的php代码。想要尽可能简单地做这件事。我的目标是使用json ('host_name')的最后一个值来显示它们。
<?php
$content = file_get_contents("test.json");
$content = utf8_encode($content);
$result = json_decode($content, true);
var_dump($result);
echo "<br><br><br>";
#echo $result["items"]["Hosts"][0]["host_name"];
foreach($result as $r) {
echo $r['items']['Hosts']['cluster_name'].'<br>';
}
?>谢谢。
发布于 2017-07-26 02:33:25
您只是循环遍历了错误的数组,应该是
foreach($result['items'] as $item) {
echo $item['Hosts']['host_name'];
}发布于 2017-07-26 02:33:57
$result需要为$result['items']
foreach($result['items'] as $r) {
echo $r['Hosts']['cluster_name'];
echo PHP_EOL;
}发布于 2017-07-26 02:39:42
如上所述,您正在循环遍历错误的数组。您也可以像这样循环遍历对象:
$obj = json_decode(utf8_encode(file_get_contents("test.json")));
foreach($obj->items as $item)
{
var_dump($item->Hosts->host_name);
}https://stackoverflow.com/questions/45311047
复制相似问题