如何从嵌套数组(json格式)中获取值,而无需在php中使用多个foreach
我想采用json格式的所有id值如何从嵌套数组(json格式)中获取值,而无需在php中使用多个foreach,php,arrays,json,laravel,Php,Arrays,Json,Laravel,我想采用json格式的所有id值 { "1": { "name": "test", "followup": { "1": { "id": "98", "followup": { "1": { "id": "93", "followup": { "1": { "id": "174" }, }
{
"1": {
"name": "test",
"followup": {
"1": {
"id": "98",
"followup": {
"1": {
"id": "93",
"followup": {
"1": {
"id": "174"
},
}
}
}
}
}
}
}
我可以通过使用嵌套的foreach来实现这一点。但是现在“followup”键出现在3中,但它可能是6,7,因此我们不能为每个添加6,7。您可以使用,例如:
这基本上一次遍历每个索引1,并将键与键id进行匹配,如果匹配,则捕获值。您可以使用,如:
这基本上一次遍历每个索引1,并将键与键id匹配,如果匹配,则捕获值。您需要获取后续id吗?您的示例所需的输出必须是什么?请参阅。如果您想访问该密钥,则需要循环该示例。我认为您应该尝试简化json对象,这样它就不会太嵌套,您需要获得后续id吗?您的示例所需的输出必须是什么?请参阅。如果您想访问该密钥,则需要循环该示例。我认为您应该尝试简化json对象,这样它就不会如此嵌套
$ids = array();
$data = json_decode($str, true);
array_walk_recursive($data, function($v, $k) use (&$ids) {
if ($k === 'id') {
$ids[] = $v;
}
});
var_dump($ids);