0

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

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

同样,我需要弄清楚兄弟数组是否不包含这个数组键。像这样的东西(再次,我知道语法非常错误):

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

1 回答 1

2

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

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);
于 2013-09-22T01:20:16.927 回答