Php 从函数中的foreach创建多维数组

Php 从函数中的foreach创建多维数组,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我想在函数中使用foreach创建多维数组 这是我的密码: $colors = ['red', 'green', 'blue']; $sizes = ['s', 'm', 'l', 'xl']; $materials = ['cotton', 'silk']; foreach ( $colors as $color ){ foreach ( $sizes as $size ){ foreach ( $materials as $material ){

我想在函数中使用foreach创建多维数组

这是我的密码:

$colors = ['red', 'green', 'blue'];
$sizes = ['s', 'm', 'l', 'xl'];
$materials = ['cotton', 'silk'];
foreach ( $colors as $color ){
    foreach ( $sizes as $size ){
        foreach ( $materials as $material ){
            $result[] = "{$color}:{$size}:{$material}";
        }
    }
}
假设输出如下所示:

Array
(
    [0] => red:s:cotton
    [1] => red:s:silk
    [2] => red:m:cotton
    [3] => red:m:silk
    [4] => red:l:cotton
    [5] => red:l:silk
    [6] => red:xl:cotton
    [7] => red:xl:silk
    [8] => green:s:cotton
    [9] => green:s:silk
    [10] => green:m:cotton
    [11] => green:m:silk
    [12] => green:l:cotton
    [13] => green:l:silk
    [14] => green:xl:cotton
    [15] => green:xl:silk
    [16] => blue:s:cotton
    [17] => blue:s:silk
    [18] => blue:m:cotton
    [19] => blue:m:silk
    [20] => blue:l:cotton
    [21] => blue:l:silk
    [22] => blue:xl:cotton
    [23] => blue:xl:silk
)
是的,我确实得到了我想要的。但是如果我想添加更多的数组呢?在循环中循环一个数组似乎一点也不方便


是否有类似于
merge\u it($arr1,$arr2,$arr3,…)
的函数,它可以为我完成所有的工作?

如果阵列大小相同,可以简单地执行以下操作:


不需要引用,因为它只是读取数组。在这个问题上,我没有对大型数组进行基准测试,但在您的情况下,它应该工作得很好。

简短回答,没有。有一个PHP函数可以合并数组,它可以合并作为参数使用的任意多个数组。但是请记住,您并不是在创建多维数组,而是在创建具有串联值的一维数组。添加要连接的值的唯一方法是通过迭代和连接,然后将合成的值推送到期望的数组。

您没有创建任何多维数组,您的数组是带有连接值的一维数组。