最近在写一段逻辑,其中需要一个一维数组的元素 两两做排列组合,设已N个元素做排列组合 以下为实现代码
<?php $arr = array('a','b','c','d','e'); $result = array(); //已多少个元素为一组做排列组合 $num = 2; $t = getCombinationToString($arr, $num); print_r($t); 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; } } return $result; }