gpt4 book ai didi

带有嵌套数组的 PHP foreach?

转载 作者:IT王子 更新时间:2023-10-29 01:00:22 26 4
gpt4 key购买 nike

我有一个嵌套数组,我想在其中显示结果的子集。例如,在下面的数组中,我想遍历嵌套数组[1] 中的所有值。

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        )    ))

我试图使用 foreach 函数,但我似乎无法让它工作。这是我原来的语法(虽然我意识到这是错误的)。

$tmpArray = array(array("one",array(1,2,3)),array("two",array(4,5,6)),array("three",array(7,8,9)));foreach ($tmpArray[1] as $value) {  echo $value;}

我试图避免变量比较键是否与我要搜索的键相同,即

foreach ($tmpArray as $key => $value) {  if ($key == 1) {    echo $value;  }}

有什么想法吗?

最佳答案

如果您知道嵌套数组中的层数,您可以简单地进行嵌套循环。像这样:

//  Scan through outer loop
foreach ($tmpArray as $innerArray) {
// Check type
if (is_array($innerArray)){
// Scan through inner loop
foreach ($innerArray as $value) {
echo $value;
}
}else{
// one, two, three
echo $innerArray;
}
}

如果你不知道数组的深度,你需要使用递归。请参见下面的示例:

//  Multi-dementional Source Array
$tmpArray = array(
array("one", array(1, 2, 3)),
array("two", array(4, 5, 6)),
array("three", array(
7,
8,
array("four", 9, 10)
))
);

// Output array
displayArrayRecursively($tmpArray);

/**
* Recursive function to display members of array with indentation
*
* @param array $arr Array to process
* @param string $indent indentation string
*/
function displayArrayRecursively($arr, $indent='') {
if ($arr) {
foreach ($arr as $value) {
if (is_array($value)) {
//
displayArrayRecursively($value, $indent . '--');
} else {
// Output
echo "$indent $value \n";
}
}
}
}

下面的代码仅显示嵌套数组,其中包含针对您的特定情况的值(仅限第 3 级)

$tmpArray = array(
array("one", array(1, 2, 3)),
array("two", array(4, 5, 6)),
array("three", array(7, 8, 9))
);

// Scan through outer loop
foreach ($tmpArray as $inner) {

// Check type
if (is_array($inner)) {
// Scan through inner loop
foreach ($inner[1] as $value) {
echo "$value \n";
}
}
}

关于带有嵌套数组的 PHP foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com