当前位置:首页 > 教程/笔记 > 正文内容

PHP多数组全排列组合 代码实现

PHP多数组全排列组合 代码实现

项目开发过程中的需求,将几个不同分类下的文章段落拼接成一篇完整的文章,于是研究了一下全排列组合算法

模拟三个数组:

$list ['a'] = array (1,2,3);
$list ['b'] = array (1,2);
$list ['c'] = array (1,2,3,4);

要求组合成这样:111,112,113,114,121,122,123.....

PHP实现代码:

<?php
class sufa{
public function main(){
$list ['a'] = array (1,2,3);
$list ['b'] = array (1,2);
$list ['c'] = array (1,2,3,4);
// $list ['f'] = array (1,2,3,4,5);
// $list ['d'] = array ("+","-","*","/","%");
foreach($list['a'] as $v){
$this->getsulie($list,$v,1);
}
}
function getsulie($list,$content,$deep){
$i=0;
if($deep>count($list)){
return;
}
foreach($list as $k=>$v){
if($i==$deep){
foreach($list[$k] as $vv){
$vv = $content.$vv;
if($deep==count($list)-1){
echo $vv."<br/>";
}else {
$this->getsulie($list,$vv,$deep+1);
}
}
break;
}
$i++;
}
return;
}
}
$s = new sufa();
$s->main();
?>

目前可以达到预期效果,不知道有没有更好的写法