2010-07-27 199 views
0

我正在使用Symfony 1.2.7和Doctrine 1.1。我有$activities (sfOutputEscaperIteratorDecorator - Doctrine_Collection)。我使用ESC_SPECIALCHARS方法在settings.yml上轉義所有內容。如果我不逃避它,它會毫無問題地工作,所以我認爲這個問題與sfOutputEscaperIteratorDecorator有關。foreach返回比count更多的元素()

如果我做echo count($activities)它返回我

我刪除幾個要素:

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

然後,如果我這樣做echo count($activities)它返回我

然而,當我通過迭代元素,我仍然有相同的5個元素:

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

任何想法?

謝謝!

回答

1

試試這個:

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

雖然它不是技術上的答案,也啓發了我採取一種新的方法。看來sfOutputEscaperIteratorDecorator集合是隻讀的,所以我不能刪除元素(儘管它的計數器似乎以不同的方式工作)。我現在做的是將元素添加到不同的數組,然後unset()我不想要的元素。謝謝! – fesja 2010-07-27 11:15:41