Как перебрать ArrayCollection в контроллере symfony2

Я хочу повторить экземпляр ArrayCollection в Symfony2 Controller, что является самым простым способом?

изменить:

Я думал, что это будет работать как обычный массив в php, но я получил ошибку в этом коде:

foreach ($arrayCollectionInc as $Inc) {

}

Ответ 1

Простейший способ:

$arr = $arrayCollectionInc->toArray();

foreach ($arr as $Inc) {

}

Рабочий пример:

$a = new ArrayCollection();
$a->add("value1");
$a->add("value2");

$arr = $a->toArray();

foreach ($arr as $a => $value) {
    echo $a . " : " . $value . "<br />";
}

Результат:

0 : value1
1 : value2

Ответ 2

Для тех, кто найдет этот вопрос в будущем, есть другой способ, который я считаю лучшей практикой, чем принятый ответ, который просто преобразует ArrayCollection в массив. Если вы собираетесь просто преобразовать в массив, зачем беспокоиться с ArrayCollection в первую очередь?

Вы можете легко выполнить цикл ArrayCollection без преобразования его в массив с помощью функции getIterator().

foreach($arrayCollection->getIterator() as $i => $item) {
    //do things with $item
}