我正在解析PHP中的JSON文件,并遇到了一些数据结构的问题,我无法弄清楚如何理解。这就是一个数据节点的样子:
{
"data": [{
"title": "Some title",
"subtitle": "Some subtitle",
"description": "Some description",
"labels": [{
"type": "itemId",
"raw": "someId12345"
}, {
"type": "itemtype",
"raw": "general"
}]
}]
}
这是我正在使用的基本代码:
$url = 'data.json';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json['data'] as $item) {
return $item['title'];
return $item['description'];
}
获取标题和说明有效,但我正在努力使用这些标签。我想获得类型itemId的“原始”值(即someId12345),但我无法弄清楚如何。标签不是固定的顺序,否则我可以使用这样的东西来获取ID:
return $item['labels'][0]['raw'];
我尝试创建一个单独的foreach,但这只会给我一个关于所有值的未识别索引。
foreach($json['data'] as $ID) {
if($ID['labels']['itemId'] == $_GET['labels']['itemId']) {
return $ID['raw'];
break;
}
}
如何获取兄弟值,以便我最终得到这些数据:
Some title
Some description
someId12345
答案 0 :(得分:2)
与你正在做的事情没有什么不同:
foreach ($json['data'] as $item) {
foreach ($item['labels'] as $label) {
var_dump($label['raw']);
}
}
要按type
进行过滤,您可以使用if
构造:
if ($label['type'] === 'itemId') {
var_dump($label['raw']);
}