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 に答える