问题可以简要的概括为:
$arr = array(1,2,3,4,5);
foreach($arr as $key => &$row) {}
foreach($arr as $key => $row) {}
var_dump($arr);
array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => &int 4
foreach 指针问题,指针大神,求现身!
------解决方案--------------------
$arr = array(1,2,3,4,5);
foreach($arr as $key => &$row) {}//这个执行完毕后,$arr[4]是个引用,值为5
foreach($arr as $key => $row) {}//这个执行过程的意思是:每次将当前值赋值给$arr[4],在在第四次循环完毕时$arr[4]的值为4,第五次就是自己赋值自己,所以为4。
$arr = array(1,2,3,4,5);
foreach($arr as $key => &$row) {}
var_dump($arr);
echo $arr[4].'<br/>';
foreach($arr as $key => $row) {
echo $arr[4].'_';
}
var_dump($arr);