6

此代码输出: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), ' ';
}
?>
4

1 回答 1

5

可能的重复:为什么 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)
{

}
于 2012-12-06T01:02:40.610 回答