1.定义:
笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
2.实现方法一
$arr = array(
array('黑色','红色','白色','黑色','紫色'),
array('36码','37码','38码','39码','40码'),
array('男款','女款'),
array('运动','休闲','商务')
);
function getCartesianProduct ($arr)
{
$result = array();//保存结果
for ($i = 0,$count = count($arr);$i<$count-1;$i++){
if($i == 0){
$result = $arr[$i];
}
$temp = array();
foreach ($result as $v1) {
foreach ($arr[$i+1] as $v2) {
$temp[] = $v1.$v2;
}
}
$result = $temp;
}
return $result;
}
$res = getCartesianProduct($arr);
3.实现方法二
function getCartesianProduct2 ($arr,$temp,$m)
{
$result = $temp;
if($m == 1){
return