foreach返回的元素多于count()

时间:2010-07-27 10:53:54

标签: php symfony1 doctrine iterator

我正在使用Symfony 1.2.7和Doctrine 1.1。我有$activities (sfOutputEscaperIteratorDecorator - Doctrine_Collection)。我正在使用ESC_SPECIALCHARS方法转义settings.yml上的所有内容。如果我没有逃避它,它会没有任何问题,所以我认为这个问题与sfOutputEscaperIteratorDecorator有关。

如果我echo count($activities),则返回 5

我删除了几个元素:

foreach($activities as $key => $a){
  if(...){
    $activities->remove($key);
  }
}

然后,如果我echo count($activities),则返回 2

然而,当我遍历元素时,我仍然有相同的5个元素:

foreach($activities as $activity){
  ..
}

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

请改为尝试:

foreach($activities as $key => $a){
  if(...){
    unset($activitie[$key]);
  }
}

答案 1 :(得分:0)

还有array_splice()