このコードの出力: 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 が配列のポインターを (1 回だけ) 進めるのはなぜですか?
配列を初期化した直後に、現在のインデックスが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)
{
}