PHP で foreach を使用して、特定のインデックスでネストされた配列にアクセスする方法

Mary-Kate Olsen
リリース: 2024-10-17 22:07:02
オリジナル
658 人が閲覧しました

How to Access a Nested Array at a Specific Index Using foreach in PHP?

ネストされた配列を使用した 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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート