Есть коллекция:
interface CollectionInterface extends \IteratorAggregate, \Countable, \ArrayAccess
class Collection implements CollectionInterface {
// ...
public function getIterator()
{
return new \ArrayIterator($this->items);
}
// ...
}
Пишу код который должен отсортировать и разрезать коллекцию.
Простые функции нельзя применить к объекту, поэтому придумал такой вариант:
/** @var Collection $orders */
$orders->getIterator()->uasort(function ($a, $b) ...
$ordersItems = array_slice($orders->getIterator()->getArrayCopy(), $offset, $limit);
$orders->getIterator()->__construct($ordersItems);
Но не работает. Думаю что из-за того что значения не передаются по ссылке. Как написать правильно?