网站首页 > 知识剖析 正文
最近遇到做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动态数组(视频配套代码)
- 最近发表
-
- 不用Flexbox, 一行代码搞定CSS居中难题
- 使用 HTML、CSS 和 JS 创建令人惊叹的粒子背景效果
- CSS样式隔离:12个技巧让冲突率降低75%
- Python开发爬虫的常用技术架构_python网络爬虫开发
- DISMTools v0.5.1 Update 1_DISMTools v0.5.1 Update 16
- Spring MVC 完整配置指南:WebMvcConfigurer 实战全解析
- Python3 XML解析:探索数据交换与处理的高效工具(38)
- 《Java核心技术·卷 Ⅱ》知识点总结
- MyBatis3源码解析-执行SQL流程_mybatis3源码深度解析
- 印度计算机应急响应小组警告:谷歌Chrome、Zoho软件存在多个漏洞
- 标签列表
-
- 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)