最近遇到做sku遇到的数学问题,实际上就是求笛卡尔积。
<?php
function generateCombinations(array $arrays): array {
$result = [[]];
foreach ($arrays as $array) {
$temp = [];
foreach ($result as $item) {
foreach ($array as $element) {
$temp[] = array_merge($item, [$element]);
}
}
$result = $temp;
}
return $result;
}
// 示例数据
$array1 = ['A', 'B']; // 第一个数组
$array2 = [1, 2, 3]; // 第二个数组
$array3 = [1, 2]; // 第三个数组
// 生成所有组合
$combinations = generateCombinations([$array1, $array2, $array3]);
// 输出结果
print_r($combinations);
?>