Нативная array_chunk не поддерживает iterable
.
Реализация ChunkedIterator
от Guzzle уступает по скорости обхода данной реализации.
iterable-chunk
- пакет, который предоставляет класс для разбиения итерируемых коллекций iterable
на пачки.
P.S. Реализован с использованием генераторов, поэтому до 8 раз быстрее ChunkedIterator.
function getIterable(): iterable
{
yield from [1, 2, 3, 4, 5];
}
$chunks = new IterableChunk(getIterable(), 2, true);
foreach ($chunks as $chunk) {
print_r($chunk);
}
[0 => 1, 1 => 2]
[2 => 3, 3 => 4]
[4 => 5]