我只花了2个小时来寻找一个显然来自&value的foreach迭代的错误。我有一个多维数组,当运行此数组时:

   foreach($arrayOfJsonMods as &$item){
        //TODO memcached votes
   }

并且PHP返回了一个具有相同元素计数的数组,但是返回了最后一条记录为DUPLICATE的数组。关于这种结构,我有什么不了解的地方吗?

我在另一台机器上运行了代码,结果是相同的。

最佳答案

我猜想您是在这里重用 &$item,并且正在绊倒一种行为,该行为被报告为bug千次,但是是引用的正确行为,这就是manual advises的原因:


foreach($arrayOfJsonMods as &$item)
{
   //TODO memcached votes
}
unset($item);

参见https://bugs.php.net/bug.php?id=29992

关于php - 为什么php通过引用迭代会返回重复的最后一条记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7158741/

10-14 15:06
查看更多