此代码输出: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), ' ';
}
?>
Run Code Online (Sandbox Code Playgroud)
可能的重复:为什么PHP的foreach推进其数组的指针(仅)一次?
在初始化数组之后,您会注意到当前索引是0.
$arr = array(0,1,2,3);
echo current($arr); // outputs 0
Run Code Online (Sandbox Code Playgroud)
当你进入foreach时,它会将内部数组指针递增1,形成"当前"值1.
注意数组如何current()通过引用传递给函数(http://php.net/manual/en/function.current.php).这会导致您遇到的行为.
如果您想获得数组的密钥,可以将foreach更改为:
foreach($arr as $key => $i)
{
}
Run Code Online (Sandbox Code Playgroud)