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中文网其他相关文章!