Php 递归函数,用于迭代t恤变体

Php 递归函数,用于迭代t恤变体,php,recursion,Php,Recursion,接下来,我需要将它放在一个函数中(可能是递归的),以便传入数组变量,它返回一个包含所有变量的数组 我有一系列不同的t恤,如下所示: 颜色:黑色、红色、蓝色 尺码:L、M、XL 变异可能不同,尺寸更多,颜色更浅,或组织变异等新变异 我需要一个函数,它返回一个包含所有迭代变量的数组,如下所示: 0颜色=>黑色大小=>L 1种颜色=>黑色尺寸=>M 2色=>黑色XL码 3色=>红色尺寸=>L 4色=>红色尺寸=>M 我无法绕过构建这个最终阵列。感谢您的帮助 类似的方法应该会奏效: $invento

接下来,我需要将它放在一个函数中(可能是递归的),以便传入数组变量,它返回一个包含所有变量的数组

我有一系列不同的t恤,如下所示:

颜色:黑色、红色、蓝色

尺码:L、M、XL

变异可能不同,尺寸更多,颜色更浅,或组织变异等新变异

我需要一个函数,它返回一个包含所有迭代变量的数组,如下所示:

0颜色=>黑色大小=>L

1种颜色=>黑色尺寸=>M

2色=>黑色XL码

3色=>红色尺寸=>L

4色=>红色尺寸=>M


我无法绕过构建这个最终阵列。感谢您的帮助

类似的方法应该会奏效:

$inventory = array();

foreach($colors as $color){
    foreach($sizes as $size){
        $inventory[] = array(
            'Color' => $color,
            'Size' => $size,
        ),
    }
}

首先循环主数组,比如说
$array
,然后在循环迭代时,您将获得包含颜色和大小的数组。然后,您可以使用相应的键/索引检索衬衫的颜色和尺寸,即
['Color']
&
['Size']
,并将它们推送到不同的新阵列
$Colors
&
$Size
array\u unique()
从数组中删除重复的元素

$colors=[];
$sizes=[];    
foreach($array as $arr){
    $colors[]=$arr['Color'];
    $sizes[]=$arr['Size'];
}
$colors=array_unique($colors)
$sizes=array_unique($sizes)
你在找我。要回答您的第一个问题,您需要这样的东西,混合搭配以满足您的需求:

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

    $temporaryCombination = induction($arrays, $i + 1);

    $result = [];

    foreach ($arrays[$i] as $value)
    {
        foreach ($temporaryCombination as $combination)
        {
            $result[] = is_array($combination)
                ? array_merge([$value], $combination) : [
                    $value,
                    $combination,
                ];
        }
    }

    return $result;
}

var_dump(induction([$color,$size,$material]));

巧合的是,通过回答您的第一个问题,我也回答了这个问题,上面的函数只需要稍微调整一下。

这些数组是在一个数组中还是单独的数组?