<?php
function cartesianProduct ($arr)
{
// 保存结果
$result = array();
// 循环遍历集合数据
for($i=0,$count=count($arr); $i<$count-1; $i++){
// 初始化
if($i==0){
$result = $arr[$i];
}
// 保存临时数据
$tmp = array();
// 结果与下一个集合计算笛卡尔积
foreach($result as $res){
foreach($arr[$i+1] as $set){
$tmp[] = $res.'-'.$set;
}
}
// 将笛卡尔积写入结果
$result = $tmp;
}
return $result;
}
$arr = [
['红','黄','蓝','绿'],
['大','中','小'],
['男款','女款'],
];
$res = cartesianProduct($arr);
本文为麦志健原创文章,转载无需和我联系,但请注明来自麦志健博客http://maizhijian.com
最新评论