0

4 レベルを超える連想配列をネストしました。4 つのレベルすべてに適用される値もあれば、最初のレベルで終了する値もあります。phpからすべての値にアクセスするにはどうすればよいですか。

2 レベルの配列の場合、次のことができます。

foreach($options as $o){
    foreach($m as $check){
        if(isset($check[$o])) echo $check[$o];
    }
}

値が設定されているかどうかを確認してから使用します。しかし、深さが不明な配列や、レベルが不均一なレベルが多数ある配列に対して、これを行うにはどうすればよいですか。

4

2 に答える 2

1

「アクセス」の意味によって異なります。値を出力したいだけの場合は、次のような再帰関数を使用できます。

function crawlArray($myArray, $depth=0) {
  foreach ($myArray as $k => $v) {
    if (is_array($v)) {
      crawlArray($v, ++$depth);
    } else {
      echo $v;
    }
  }
}

crawlArray($options);
于 2013-10-29T12:17:05.710 に答える