3v4l.org

run code in 300+ PHP versions simultaneously
<?php function P(array $sources) { $result=array(); $cache=array(); foreach($sources as $node) { $cache=$result; $result=array(); foreach($node as $item) { if(empty($cache)) { $result[]=array($item); } else { foreach($cache as $line) { $line[]=$item; $result[]=$line; } } } } return $result; } $result=P(array( array('paco', 'anto', 'jua'), array('a', 'b', 'jose') )); print_r(array_map(function($a){return implode(",",$a);},$result));

preferences:
35.55 ms | 402 KiB | 5 Q