网站首页 > 知识剖析 正文
最近遇到做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);
?>
输出的内容即:
Array
(
[0] => Array ( [0] => A, [1] => 1, [2] => 1 )
[1] => Array ( [0] => A, [1] => 1, [2] => 2 )
[2] => Array ( [0] => A, [1] => 2, [2] => 1 )
[3] => Array ( [0] => A, [1] => 2, [2] => 2 )
[4] => Array ( [0] => A, [1] => 3, [2] => 1 )
[5] => Array ( [0] => A, [1] => 3, [2] => 2 )
[6] => Array ( [0] => B, [1] => 1, [2] => 1 )
[7] => Array ( [0] => B, [1] => 1, [2] => 2 )
[8] => Array ( [0] => B, [1] => 2, [2] => 1 )
[9] => Array ( [0] => B, [1] => 2, [2] => 2 )
[10] => Array ( [0] => B, [1] => 3, [2] => 1 )
[11] => Array ( [0] => B, [1] => 3, [2] => 2 )
)
猜你喜欢
- 2025-07-27 30. ArrayList动态数组(视频配套代码)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)