Foreach に問題があります。2 番目の foreach を理解できません。
$foo 配列の 3 番目の部分の値に「2」が含まれているのはなぜですか!
私たちが知っている限りでは、「&」(最初の foreach で) を削除すると問題は解決しますが、なぜでしょうか?
<?php
$foo = array('one', 'two', 'three');
foreach ($foo as &$bar)
{
// no-op
}
var_dump($foo);
foreach ($foo as $bar)
{
 // no-op
}
var_dump($foo);
?>
###############################################
生成:
 array(3) {
   [0]=>string(3) "one"
   [1]=>string(3) "two"
   [2]=>&string(5) "three"
  }
   array(3) {
  [0]=>string(3) "one"
  [1]=>string(3) "two"
  [2]=>&string(3) "two"
  }