Я пытаюсь отсортировать ArrayCollection
по определенному полю. ArrayCollection
- это массив курсов. В сущности Course
есть метод с именем isLive
, который возвращает логическое значение.
Я бы хотел отсортировать эту коллекцию, чтобы в начале массива были «живые» курсы, так что это курсы, которые возвращают true
из isLive
вызова.
Это код, который у меня есть в настоящее время, но первая запись в массиве $sorted
- это не живой курс.
$iterator = $this->courses->getIterator();
$iterator->uasort(function ($a, $b) {
if ($a->isLive() == $b->isLive()) {
return 0;
}
return ($a->isLive() < $b->isLive()) ? -1 : 1;
});
$sorted = new ArrayCollection(iterator_to_array($iterator));