如何从嵌套数组(json格式)中获取值,而无需在php中使用多个foreach

如何从嵌套数组(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" }, }

我想采用json格式的所有id值

{
"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);