Skip to content

Класс для разбиения итерируемых коллекций на пачки.

License

Notifications You must be signed in to change notification settings

dromru/iterable-chunk

Repository files navigation

iterable-chunk

Latest Stable Version Tests Coverage Status Minimum PHP Version

Проблема

Нативная array_chunk не поддерживает iterable. Реализация ChunkedIterator от Guzzle уступает по скорости обхода данной реализации.

Решение

iterable-chunk - пакет, который предоставляет класс для разбиения итерируемых коллекций iterable на пачки.

P.S. Реализован с использованием генераторов, поэтому до 8 раз быстрее ChunkedIterator.

Benchmark

Пример использования

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]

About

Класс для разбиения итерируемых коллекций на пачки.

Resources

License

Stars

Watchers

Forks

Languages