PHP - 将操作应用于后代数组,而不考虑父数组


PHP - Apply operations to descendant arrays regardless of parent arrays

在多维数组中,我尝试选择所有具有特定键的后代数组,无论它们的父数组是什么。我知道以下语法不起作用,但希望它有助于说明我想要完成的任务:

<?php
  foreach ($array[*][*]['descendant'] as $descendent) {
     // do stuff
  }
?>

同样,我需要弄清楚同级数组是否不包含此数组键。像这样的东西(再次,我知道语法是可怕的错误):

<?php
  foreach ($array[*][*]['descendant'] < 1 as $descendent) {
     // do stuff
  }
?>

如果总是有三维数组,则可以使用嵌套循环:

foreach($array as $lv1) {
    foreach($lv1 as $lv2) {
        foreach($lv2['descendant'] as $descendent) {
              // do stuff
        }
    }
}

如果你想支持无限数量的维度,你可以使用这个丑陋的代码

function drill($arr) {
    if (isset($arr) && is_array($arr)) {
        foreach($arr as $key => $value) {
            if ($key == 'descendant') {
                foreach($value as $descendent) {
                    // do stuff here
                }
            } else {
                drill($value);
            }
        }
    }
}
drill($array);