<分区>
在 foreach
循环中,似乎 PHP 在开始时读取整个数组,因此如果您突然需要将新项附加到数组中,它们将不会被循环处理:
$a = array (1,2,3,4,5,6,7,8,9,10);
foreach ($a as $b)
{
echo " $b ";
if ($b ==5) $a[] = 11;
}
只打印出:1 2 3 4 5 6 7 8 9 10
<分区>
在 foreach
循环中,似乎 PHP 在开始时读取整个数组,因此如果您突然需要将新项附加到数组中,它们将不会被循环处理:
$a = array (1,2,3,4,5,6,7,8,9,10);
foreach ($a as $b)
{
echo " $b ";
if ($b ==5) $a[] = 11;
}
只打印出:1 2 3 4 5 6 7 8 9 10
最佳答案
只需创建您正在循环的数组的引用副本
$a = array(1,2,3,4,5,6,7,8,9,10);
$t = &$a; //Copy
foreach ( $t as $b ) {
echo " $b ";
if ($b == 5)
$t[] = 11;
}
或者只使用ArrayIterator
$a = new ArrayIterator(array(1,2,3,4,5,6,7,8,9,10));
foreach ( $a as $b ) {
echo "$b ";
if ($b == 5)
$a->append(11);
}
输出
1 2 3 4 5 6 7 8 9 10 11
关于php - 如何在循环遍历数组时将项目添加到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13214716/