foreach возвращает больше элементов, чем count () - PullRequest
0 голосов
/ 27 июля 2010

Я использую Symfony 1.2.7 и Doctrine 1.1. У меня есть $activities (sfOutputEscaperIteratorDecorator - Doctrine_Collection). Я избегаю всего на settings.yml с помощью метода ESC_SPECIALCHARS. Если бы я не избежал этого, он бы работал без проблем, поэтому я думаю, что проблема связана с sfOutputEscaperIteratorDecorator.

Если я сделаю echo count($activities), он вернет меня 5

Я удаляю несколько элементов:

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

Тогда, если я сделаю echo count($activities), он вернет меня 2

Однако, когда я перебираю элементы, у меня остаются те же 5 элементов:

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

Есть идеи?

спасибо!

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Попробуйте вместо этого:

foreach($activities as $key => $a){
  if(...){
    unset($activitie[$key]);
  }
}
0 голосов
/ 27 июля 2010

Также есть array_splice ()

...