Как получить все возможные комбинации многомерного массива

Хорошо, здесь у меня многомерный массив. Он состоит из 3 массивов, каждый из которых имеет 3 номера.

$numbers = array( array("1", "2", "3"), array("4", "5", "6"), array("7", "8", "9"), ); 

Я хочу создать и перечислить все возможные комбинации чисел из этих массивов. Так, например, «147» (1 из первого массива, 4 из второго массива и 7 – из третьего массива), «247, 347, 157, 257, 357, 167, 267, 367 и т. Д. «.

Важно то, что первое число должно поступать из первого массива, второго числа из второго массива и третьего из третьего массива.

Я попытался пропустить эти массивы, используя вложенные петли foreach, но я не могу понять это, и это заставляет мою голову вращаться. Надеюсь, что это имеет смысл, любая помощь будет очень признательна.

 <?php $numbers = array( array("1", "2", "3"), array("4", "5", "6"), array("7", "8", "9"), ); for ($i=0;$i<3;$i++) { for ($j=0;$j<3;$j++) { for ($k=0;$k<3;$k++) { echo $numbers[0][$i]+" "+$numbers[1][$j]+" "+$numbers[2][$k]+"\n"; } } } ?> 

Я не программировал в php, поэтому код может сделать ваши глаза кровоточащими. Тем не менее, код работает и демонстрирует эту идею.

 $numbers = array( array("1", "2", "3"), array("4", "5", "6"), array("7", "8", "9"), ); $f_nb = $numbers['0']; $s_nb = $numbers['1']; $t_nb = $numbers['2']; $final_array = array(); for($a = 0; $a<sizeof($f_nb); $a++) { for($b = 0; $b<sizeof($s_nb); $b++) { for($c = 0; $c<sizeof($t_nb); $c++) { $final_array[] = $f_nb["$a"] . $s_nb["$b"] . $t_nb["$c"]; } } } print_r($final_array);