代码如下
$arr=array('a','b','c','d');
$result=array();
$t= getCombinationToString($arr, 1);
print_r($t);
$t= getCombinationToString($arr, 2);
$t2= getunique($t);
print_r($t2);
$t= getCombinationToString($arr, 3);
$t2= getunique($t);
print_r($t2);
$t= getCombinationToString($arr, 4);
$t2= getunique($t);
print_r($t2);
functiongetunique($t){
$t2=array();
//print_r($t);
for($i=0;$i $count_list=array_count_values($t[$i]); $flag= 1; foreach($count_listas$ck=>$cv){ if($cv>1){ $flag= 0; break; } } if($flag){ sort($t[$i]); $flag2= 1; if($t2){ foreach($t2as$t2k=>$t2v){ if($t[$i]==$t2v){ $flag2= 0; break; } } } if($flag2){ $t2[] =$t[$i]; } } } return$t2; } functiongetCombinationToString($arr,$m) { if($m==1) { return$arr; } $result=array(); $tmpArr=$arr; unset($tmpArr[0]); for($i=0;$i $s=$arr[$i]; $ret= getCombinationToString(array_values($tmpArr), ($m-1),$result); foreach($retas$row) { //$result[] = $s . $row; $temp=array(); $temp[] =$s; if(is_array($row)){ $temp=array_merge($temp,$row); }else{ $temp[] =$row; } sort($temp); $result[] =$temp; } } return$result; } ?> [php输出多个元素的排列或组合的方法]PHP输出多个元素的排列或组合的方法 http://m.bbyears.com/jiaocheng/131354.html