<?php
function zip(...$arr){
$newArr = [];
$count_max = 0;
foreach($arr as $a) {
$newArr[] = array_reverse($a);
$count_max = count($a) > $count_max ? count($a) : $count_max;
}
while($count_max) {
$return = [];
foreach($newArr as &$a)
$return[] = array_pop($a);
yield $return;
$count_max--;
};
}
$i = ['a', 'b', 'c', 'd'];
$j = ['1', '2', '3', '4'];
$g = ['!', '@', '#', '$'];
$c = 0;
foreach(zip($i, $j, $g) as [$k, $l, $m]) {
$c++;
printf("%s-%d-%s - Count: %d\n", $k, $l, $m, $c);
}
preferences:
58.06 ms | 402 KiB | 5 Q