@springimport

Где сделать сортировку обычной коллекции в php?

Для нужд формы сделал простую коллекцию вида
class Collection implements \ArrayAccess, \Countable, \Iterator

В ней реализовал все нужные методы.
Возникла задача сделать пересортировку этой коллекции в соответствии с условием. Как сделать я знаю, не знаю где сделать.

Есть идея добавить метод sortBySomeRuleHere() в унаследованном классе Items. Хорошей она не кажется потому что не единая ответственность.

Можно по-другому: сделать отдельный класс со своей сортировкой, только нельзя будет пересортировать именно эту коллекцию, получится разве что сохранить результат в другой класс.
public function getIterator()
{
    return new \ArrayIterator($this->items);
}


Возможно я просто перемудрил и можно просто добавить нужные методы сортировки.
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
iterator_apply — Вызывает функцию для каждого элемента в итераторе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы