ネストされた配列を使用した PHP foreach
質問: PHP の foreach ループを使用して特定のネストされた配列にアクセスする方法?
次のネストされた配列について考えてみましょう:
<code class="php">array( [0] => array( [0] => one [1] => array( [0] => 1 [1] => 2 [2] => 3 ) ) [1] => array( [0] => two [1] => array( [0] => 4 [1] => 5 [2] => 6 ) ) [2] => array( [0] => three [1] => array( [0] => 7 [1] => 8 [2] => 9 ) ) ) );</code>
目標は、変数比較を使用せずに、キー 1 でネストされた配列の値を反復処理することです。
答え: これを達成するには、2 つのアプローチがあります:
1.ネストされたループ (固定深さ):
この方法は、ネストされた配列の深さが事前にわかっている場合に適しています。
<code class="php">foreach ($tmpArray as $innerArray) { if (is_array($innerArray)) { foreach ($innerArray as $value) { echo $value; } } else { echo $innerArray; } }</code>
2.再帰関数 (深さ不明):
このアプローチは、ネストされた配列の深さが不明な場合に使用されます。これには、配列を走査する再帰関数が含まれます:
<code class="php">function displayArrayRecursively($arr, $indent='') { if ($arr) { foreach ($arr as $value) { if (is_array($value)) { displayArrayRecursively($value, $indent . '--'); } else { echo "$indent $value \n"; } } } } $tmpArray = array( array("one", array(1, 2, 3)), array("two", array(4, 5, 6)), array("three", array(7, 8, 9)) ); displayArrayRecursively($tmpArray);</code>
特定のケース:
第 3 レベル (キー 2) の値を持つネストされた配列のみにアクセスする場合、次のコードを使用します:
<code class="php">foreach ($tmpArray as $inner) { if (is_array($inner)) { foreach ($inner[1] as $value) { echo "$value \n"; } } }</code>
以上がPHP で foreach を使用して、特定のインデックスでネストされた配列にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。