Как перебрать 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
}