PHP输出多个元素的排列或组合的方法
2017-03-14 08:31
621 查看
实例如下:
<?php $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); function getunique($t){ $t2 = array(); //print_r($t); for($i=0;$i<count($t);$i++){ $count_list = array_count_values($t[$i]); $flag = 1; foreach($count_list as $ck=>$cv){ if($cv>1){ $flag = 0; break; } } if($flag){ sort($t[$i]); $flag2 = 1; if($t2){ foreach($t2 as $t2k=>$t2v){ if($t[$i]==$t2v){ $flag2 = 0; break; } } } if($flag2){ $t2[] = $t[$i]; } } } return $t2; } function getCombinationToString($arr, $m) { if ($m ==1) { return $arr; } $result = array(); $tmpArr = $arr; unset($tmpArr[0]); for($i=0;$i<count($arr);$i++) { $s = $arr[$i]; $ret = getCombinationToString(array_values($tmpArr), ($m-1), $result); foreach($ret as $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; } ?>
共15种排列结果。
以上这篇PHP输出多个元素的排列或组合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- PHP输出多个元素的排列组合
- PHP输出多个元素的排列排列或组合
- php求数组全排列,元素所有组合的方法总结
- php求数组全排列,元素所有组合的方法
- php求数组全排列,元素所有组合的方法
- 基于PHP的排列组合(如输入a,b,c 输出他们的全部组合)
- 使用php计算排列组合的方法
- 基于PHP的排列组合(如输入a,b,c 输出他们的全部组合)
- 使用php计算排列组合的方法
- 浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
- PHP输出数组中重名的元素的几种处理方法
- php通过排列组合实现1到9数字相加都等于20的方法
- 排列组合总结:将结果进行输出的实现方法
- PHP输出数组中重名的元素的几种处理方法
- python以环状形式组合排列图片并输出的方法
- 递归输出一组元素的排列组合方式
- python以环状形式组合排列图片并输出的方法
- 输出数组的所有元素的排列组合(递归)
- PHP输出数组中重名的元素的几种处理方法
- NOJ 1430 组合的输出 (组合数的排列,两种方法)