我正在尝试了解有关 for each 循环中的数组的一些内容,这对许多人来说可能是显而易见的。
当我遍历多维数组时,我试图找到没有第三个元素的子数组。如果它们没有第三个元素,我想向该子数组添加一个具有特定值的第三个元素。
$testArray = array (
array("Green", "Yellow", "Blue"),
array("Brown", "Silver"),
array("Orange", "Pink", "Black"),
);
当我使用 foreach 循环时:
foreach ( $testArray as $key => $array ) {
if (count($array) == '2') {
$array[] = "None";
};
}
没有错误被抛出但什么也没有发生。当我使用 for each 循环时:
foreach ( $testArray as $key => $array ) {
if (count($array) == '2') {
$testArray[$key][] = "None";
};
}
它按预期工作。
抱歉序言很长,我的问题是:
为什么这两个 foreach 循环不做同样的事情?谢谢!
最佳答案
因为您需要“通过引用”访问 $testArray 条目
foreach ( $testArray as &$array ) {
if (count($array) == 2) {
$array[] = "None";
};
}
unset($array);
关于php - 为什么我不能在 foreach 循环中将元素插入子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17345745/