如何在symfony2 Controller中迭代ArrayCollection

时间:2014-09-04 14:24:35

标签: php symfony doctrine-orm

我想在Symfony2 Controller中迭代ArrayCollection实例,最简单的方法是什么?

编辑:

我认为它会像php中的普通数组一样工作,但我在这段代码上遇到错误:

foreach ($arrayCollectionInc as $Inc) {

}

3 个答案:

答案 0 :(得分:32)

对于那些在将来发现这个问题的人来说,除了接受的答案之外,还有另一种方式我认为这是一种更好的做法,只是将ArrayCollection转换为数组。如果您要转换为数组,为什么还要先考虑ArrayCollection

您可以使用ArrayCollection函数轻松遍历getIterator()而无需将其转换为数组。

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

答案 1 :(得分:12)

最简单的方法:

$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 :(得分:0)

绝对同意不应将其转换为数组,但是,->getIterator()不是必需的。

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