Как разбить докториновский Array collection по 10 элементов?
Всем привет, подскажите пожалуйста как можно на уровне докториновской array colletion сделать данную разбивку?
есть коллекция из 500 объектов

не могу понять как сделать чтобы у меня было 50 Array collection по 10 объектов в каждой? как в array_chunk указал колличество и функция разбила плоский массив по указанному колличеству..
Ответы (1 шт):
Автор решения: Daniel Protopopov
→ Ссылка
Можно использовать slice метод:
<?php
$collection = new ArrayCollection([1, 2, 3]);
$collections = [];
$perPage = 10;
$pages = count($collection) / $perPage;
for ($index = 0; $index <= $pages; $index++) {
$collections[] = $collection->slice($index * $perPage, min($perPage, count($collection) - index * $perPage));
}
Процесс
Для каждой страницы, извлечь срез (массив) из оригинального массива, с началом номера страницы * кол-во на странице, с длиной кол-ва на странице, либо остатка до конца массива если осталось меньше.