php 生成笛卡尔集

来源:互联网 发布:苹果电脑音乐制作软件 编辑:程序博客网 时间:2024/06/07 00:59
$color = array('red', 'green');$size = array(39, 40, 41);$local = array('beijing', 'shanghai');$local1 = array('a', 'b', 'z');echo "<pre>";$a = combineDika($color, $size, $local, $local1);foreach($a as $_a){    foreach($_a as $k)    {        echo $k.',';    }    echo '<br />';}print_r($a);echo count($a);/** * 所有数组的笛卡尔积  *  * @param unknown_type $data  */function combineDika(){    $data = func_get_args();    $cnt = count($data);    $result = array();    foreach ($data[0] as $item)    {        $result[] = array($item);    }    for ($i = 1; $i < $cnt; $i++)    {        $result = combineArray($result, $data[$i]);    }    return $result;}/** * 两个数组的笛卡尔积  *  * @param unknown_type $arr1  * @param unknown_type $arr2  */function combineArray($arr1, $arr2){    $result = array();    foreach ($arr1 as $item1)    {        foreach ($arr2 as $item2)        {            $temp = $item1;            $temp[] = $item2;            $result[] = $temp;        }    }    return $result;}


0 0
原创粉丝点击