我有一个可以在数量上变化的组列表,这些组中的项目的数量也各不相同。我一直绞尽脑汁想要从每个小组中获得所有可能的1项组合。
奖励:我还需要不包含群组中所有项目的所有组合。
我已经看到并完成了mentioned before的内容,但这需要知道要开始的群组数量。
为了更具体地说明我正在做什么,我想根据产品选项生成具有精确定价的产品。这是一个示例列表:
所以它会产生如下产品:
UV涂料,数量500,颜色4:0
UV涂料,数量500,颜色4:1
等...
这些组中的每一个都有一个ID,每个项目都有一个Group_Item_ID。所以我可以把它们放在一个数组中,如:
$selections[1][...] // 1 = Coating
$selections[2][...] // 2 = Quantity
// ... = all selected Items in group
希望我解释得很好。当群组的数量也可变时,我无法绕过如何做到这一点。
以下是组及其项目的示例数组:
Array
(
[0] => Array
(
[0] => 2
[1] => 3
)
[1] => Array
(
[0] => 10
[1] => 11
[2] => 12
)
[2] => Array
(
[0] => 16
[1] => 17
)
[3] => Array
(
[0] => 19
[1] => 20
)
)
答案 0 :(得分:4)
试试这个:
function c($groups, $prefix='')
{
$result = array();
$group = array_shift($groups);
foreach($group as $selected) {
if($groups) {
$result = array_merge($result, c($groups, $prefix . $selected. ' '));
} else {
$result[] = $prefix . $selected;
}
}
return $result;
}