PHP 多个一维数组组合

function A($a , $currentArr, $currentIndex , $new , &$data = []){
foreach ($currentArr as $k=>$v){
$new[$currentIndex] = $v;
if (isset($a[$currentIndex +1 ])){
A($a,$a[$currentIndex + 1 ], $currentIndex + 1 , $new , $data);
}else{
$data[] = $new;
}
}
}
$arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
function getUnion($arr1, $arr2)
{
$new = [];
foreach ($arr1 as $k => $v) {
if (!empty($arr2)) {
foreach ($arr2 as $key => $value) {
$new[] = $v . $value;
}
} else {
$new = $arr1;
}
}
return $new;
}
$result = [];
$length = count($arr);
for ($i = 0; $i < $length; $i++) {
if ($i === 1) {
$result = getUnion($arr[0], $arr[1]);
}
if ($i > 1) {
$result = getUnion($result, $arr[$i]);
}
}