3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function chunk_iterator(Iterator $it, int $n) { $chunk = []; for($i = 0; $it->valid(); $i++){ $chunk[] = $it->current(); $it->next(); if(count($chunk) == $n){ yield $chunk; $chunk = []; } } if(count($chunk)){ yield $chunk; } } // For demonstration, create an iterator from array $arr = range(20, 40, 1); $it = new ArrayIterator($arr); // Iterate over the generator foreach(chunk_iterator($it, 6) as $c){ echo implode(',', $c)."\n"; }
Output for 7.1.25 - 7.3.4
20,21,22,23,24,25 26,27,28,29,30,31 32,33,34,35,36,37 38,39,40