3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arrayA = array('A1','A2','A3'); $arrayB = array('B1','B2','B3'); $arrayC = array('C1','C2'); print_r([...combinations([$arrayA, $arrayB, $arrayC])]); function combinations(array $arrays): iterable { if ($arrays === []) { yield []; return; } $head = array_shift($arrays); foreach ($head as $elem) { foreach (combinations($arrays) as $combination) { yield [$elem, ...$combination]; } } }

preferences:
26.14 ms | 405 KiB | 5 Q