Para classificar um Doctrine ArrayCollection, a classe oferece um método para instanciar um ArrayIterator para classificar elementos usando uma função de fechamento:
// get a new ArrayIterator
$iterator = $myCollection->getIterator();
// define ordering closure, using preferred comparison method/field
$iterator->uasort(function ($first, $second) {
return (int) $first->getPosition() > (int) $second->getPosition() ? 1 : -1;
});
// return the ordered iterator
return $iterator;