Php 如何将动态数组的矩阵创建为一个数组?

Php 如何将动态数组的矩阵创建为一个数组?,php,laravel,algorithm,matrix,Php,Laravel,Algorithm,Matrix,我有动态数量的数组,如: $a= [ 1, 2 ]; $b= [ 3, 4, 5 ]; $c= [ 6 ]; 我希望将每行中的每个数字与父值合并,直到所有子值都完成。因此,从最低级别开始,矩阵的创建如下所示: 第三级: [ 6 ] [ [3 , 6] , [4 , 6] , [5 , 6] ] [ [1, 3, 6] , [1, 4 , 6] , [1, 5 , 6] , [2, 3, 6] , [2,

我有动态数量的数组,如:

    $a= [ 1, 2 ];
    $b= [ 3, 4, 5 ];
    $c= [ 6 ];
我希望将每行中的每个数字与父值合并,直到所有子值都完成。因此,从最低级别开始,矩阵的创建如下所示:

第三级:

[ 6 ]
[ 
   [3 , 6] , 
   [4 , 6] , 
   [5 , 6]
]
[
  [1,  3,  6] , 
  [1,  4 , 6] ,
  [1,  5 , 6] ,
  [2,  3,  6] , 
  [2,  4 , 6] , 
  [2,  5 , 6]
]
第二级:

[ 6 ]
[ 
   [3 , 6] , 
   [4 , 6] , 
   [5 , 6]
]
[
  [1,  3,  6] , 
  [1,  4 , 6] ,
  [1,  5 , 6] ,
  [2,  3,  6] , 
  [2,  4 , 6] , 
  [2,  5 , 6]
]
第一级/最高级别(最终级别):

[ 6 ]
[ 
   [3 , 6] , 
   [4 , 6] , 
   [5 , 6]
]
[
  [1,  3,  6] , 
  [1,  4 , 6] ,
  [1,  5 , 6] ,
  [2,  3,  6] , 
  [2,  4 , 6] , 
  [2,  5 , 6]
]
注意:数组的数量可能会变化,每个数组中的元素数量也可能会变化。
我想要一种方法,让它们进入矩阵,就像上面的最终结果一样。有没有关于如何开始的想法?

我以前也遇到过同样的问题,这里是我尝试过的

1-您可以将交叉连接帮助器与集合一起使用

$results=collect($a)->crossJoin($b,$c);
2-您可以使用像这样的本地语言

 function combinations($arrays, $i = 0) {
            if (!isset($arrays[$i])) {
                return array();
            }
            if ($i == count($arrays) - 1) {
                return $arrays[$i];
            }

            // get combinations from subsequent arrays
            $tmp = combinations($arrays, $i + 1);

            $result = array();

            // concat each array from tmp with each element from $arrays[$i]
            foreach ($arrays[$i] as $v) {
                foreach ($tmp as $t) {
                    $result[] = is_array($t) ?
                        array_merge(array($v), $t) :
                        array($v, $t);
                }
            }

            return $result;
        }

        dd(
            combinations(
                array(
                    array('1','2','3'),
                    array('4','5','6'),
                    array('7','8')
                )
            )
        );

在构建所需的输出数组时,您能否进一步解释这些数字的来源?另外,到目前为止,您尝试过什么代码?我尝试过使用循环来追加,但它确实得到了很好的效果complicated@CristianRamon-科尔特斯对我来说也不清楚。实际上是每一行的每一个数字,父值持续到所有子值完成。@vivek_23我用你的解释更新了这个问题。非常感谢@vivek_23谢谢你救了我一天我尝试了你的代码,它工作得很好。