首页  >  文章  >  后端开发  >  如何在 PHP 中使用 foreach 访问特定索引处的嵌套数组?

如何在 PHP 中使用 foreach 访问特定索引处的嵌套数组?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-17 22:07:02576浏览

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 处嵌套数组的值,而不使用变量比较。

答案:有两种方法可以实现此目的:

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>

具体情况:

仅访问具有第三层(键 2)值的嵌套数组,使用以下代码:

<code class="php">foreach ($tmpArray as $inner) {
    if (is_array($inner)) {
        foreach ($inner[1] as $value) {
            echo "$value \n";
        }
    }
}</code>

以上是如何在 PHP 中使用 foreach 访问特定索引处的嵌套数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn