【发布时间】:2012-11-23 23:31:39
【问题描述】:
此代码输出: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), ' ';
}
?>
【问题讨论】:
此代码输出: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), ' ';
}
?>
【问题讨论】:
可能重复:Why does PHP's foreach advance the pointer of its array (only) once?
在初始化数组后,您会注意到当前索引是0。
$arr = array(0,1,2,3);
echo current($arr); // outputs 0
当您进入 foreach 时,它会将内部数组指针加 1,使“当前”值 1。
注意数组是如何通过reference (http://php.net/manual/en/function.current.php) 传递给current() 函数的。这会导致您遇到的行为。
如果您想获取数组的键,可以将 foreach 更改为:
foreach($arr as $key => $i)
{
}
【讨论】: