此代码输出:1 1 1 1
我预计要么 0 0 0 0 要么 0 1 2 3
<?php
$arr = array(0,1,2,3);
foreach($arr as $i)
{
echo current($arr), ' ';
}
?>
可能的重复:为什么 PHP 的 foreach 将其数组的指针(仅)推进一次?
初始化数组后,您会注意到当前索引是0
.
$arr = array(0,1,2,3);
echo current($arr); // outputs 0
当您进入 foreach 时,它会将内部数组指针增加 1,从而形成“当前”值1
。
注意数组是如何通过引用current()
传递给函数的(http://php.net/manual/en/function.current.php)。这会导致您正在经历的行为。
如果您想获取数组的键,可以将 foreach 更改为:
foreach($arr as $key => $i)
{
}