我有一个实体数组,我想根据这个实体的一个属性对它进行排序。我看到像sort()这样的函数是在php中定义的,但我想添加一个元素,根据它来进行比较。有什么想法?
$qb->select('a')
->from('TelnOperatorBundle:Subnumber', 'a')
->where('a.numberrange = :id')
->setParameter('id', $id);
//$entites=$qb->getQuery()
// ->getResult();
$entites = $qb->getQuery()->getResult();
asort($entites);
//var_dump($entites);
foreach($entites as $entite)
{
//$entite est une instance d'Article pour notre exemple
echo($entite->getId());
}
如果你没有理由需要无序数组并且你的实体是由Doctrine处理的你可以简单地在你的控制器中使用以下代码:
$this->getDoctrine()->getRepository('TelnOperatorBundle:Subnumber')->findBy(
array('numberrange' => $id),
array('numberrange' => 'asc')
);
第一个数组保存WHERE
子句的值,第二个数组保存ORDER BY
的值。
如果您想创建自己的查询—例如在存储库中使用—只需添加:
[…]
->where('a.numberrange = :id')
->addOrderBy('a.numberrange', 'desc')
[…]
回复您的查询。
在这两种情况下,结果都是按数据库排序的。所以你不需要自己做这个