我想以json格式获取所有id值。
{
"1": {
"name": "test",
"followup": {
"1": {
"id": "98",
"followup": {
"1": {
"id": "93",
"followup": {
"1": {
"id": "174"
},
}
}
}
}
}
}
}
我可以通过使用嵌套的foreach
来实现这一点。但是现在“跟进”键出现在3中,但它可能是6,7,因此我们无法添加6,7 foreach
。
答案 0 :(得分:4)
您可以使用array_walk_recursive()
,例如(DEMO):
$ids = array();
$data = json_decode($str, true);
array_walk_recursive($data, function($v, $k) use (&$ids) {
if ($k === 'id') {
$ids[] = $v;
}
});
var_dump($ids);
这基本上一次遍历每个索引1,并将键与键id
匹配,如果匹配,则捕获值。