wkf928592 2012-07-19 09:24:08 3153次浏览 1条回复 0 0 0

【注】原文出处:http://www.wukunfan.com/index.php/php-in-the-algorithm-realization-of-permutation-and-combination.htmlPHP中排列组合的算法实现 | 饭饭博客 最近在做数据迁移工作,在迁移过程中遇到了这样的一个问题:将两个数组中的元素一一组合一次。其实这个原理很简单,就是利用我们中学学的排列组合原理,可是我这脑袋瓜子笨,愣是转不过弯,也不愿去折腾,所以网上搜了一下。这类的例子网上少,都是五花八门的,所以今天把我亲测可用的放在这里,一是和大家一起分享一下,二是记录一下,下次免得找了。话不多说了,下面贴代码:

if(!empty($row['PropertyName'])){

        //属性处理 array("颜色"=>array("红色","绿色","蓝色"),"尺寸"=>array("M","L","XL"));

        $newArr=array();
        $key = 0;
        foreach($array as $val){
            $newArr[$key]=$val;
            $key++;
        }

        $h=count($newArr);
        $w=count($h[0]);
        $m=array();
        $m[$i=$h]=1;
        while ($i--){
            $m[$i] = $m[$i+1]*count($newArr[$i]);
        }
        $n=$m[0];
        $explode_Name = explode(",", $row['PropertyName']);
        for ($i = 0; $i < $n; $i++) {
                $item=array();
                for ($j = 0; $j < $h; $j++){

                    $variationList =  $newArr[$j][~~($i % $m[$j] / $m[$j + 1])];
                    $item[$explode_Name[$j]] = $variationList;
                }
        }
     }
您需要登录后才可以回复。登录 | 立即注册