PHP中排列组合的算法实现 [ 新手入门 ]
【注】原文出处:http://www.wukunfan.com/index.php/php-in-the-algorithm-realization-of-permutation-and-combination.html
PHP中排列组合的算法实现 | 饭饭博客
最近在做数据迁移工作,在迁移过程中遇到了这样的一个问题:将两个数组中的元素一一组合一次。其实这个原理很简单,就是利用我们中学学的排列组合原理,可是我这脑袋瓜子笨,愣是转不过弯,也不愿去折腾,所以网上搜了一下。这类的例子网上少,都是五花八门的,所以今天把我亲测可用的放在这里,一是和大家一起分享一下,二是记录一下,下次免得找了。话不多说了,下面贴代码:
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;
}
}
}
wkf928592
注册时间:2011-10-08
最后登录:2019-03-25
在线时长:18小时1分
最后登录:2019-03-25
在线时长:18小时1分
- 粉丝6
- 金钱1180
- 威望0
- 积分1360