日期:2014-05-17  浏览次数:20535 次

昨天在做数据库批量导入的时候遇到的老问题(foreach+&问题)
问题可以简要的概括为:
$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);