Php 递归函数,用于迭代t恤变体
接下来,我需要将它放在一个函数中(可能是递归的),以便传入数组变量,它返回一个包含所有变量的数组 我有一系列不同的t恤,如下所示: 颜色:黑色、红色、蓝色 尺码:L、M、XL 变异可能不同,尺寸更多,颜色更浅,或组织变异等新变异 我需要一个函数,它返回一个包含所有迭代变量的数组,如下所示: 0颜色=>黑色大小=>L 1种颜色=>黑色尺寸=>M 2色=>黑色XL码 3色=>红色尺寸=>L 4色=>红色尺寸=>MPhp 递归函数,用于迭代t恤变体,php,recursion,Php,Recursion,接下来,我需要将它放在一个函数中(可能是递归的),以便传入数组变量,它返回一个包含所有变量的数组 我有一系列不同的t恤,如下所示: 颜色:黑色、红色、蓝色 尺码:L、M、XL 变异可能不同,尺寸更多,颜色更浅,或组织变异等新变异 我需要一个函数,它返回一个包含所有迭代变量的数组,如下所示: 0颜色=>黑色大小=>L 1种颜色=>黑色尺寸=>M 2色=>黑色XL码 3色=>红色尺寸=>L 4色=>红色尺寸=>M 我无法绕过构建这个最终阵列。感谢您的帮助 类似的方法应该会奏效: $invento
我无法绕过构建这个最终阵列。感谢您的帮助 类似的方法应该会奏效:
$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]));
巧合的是,通过回答您的第一个问题,我也回答了这个问题,上面的函数只需要稍微调整一下。这些数组是在一个数组中还是单独的数组?