从一个数组中,取出任意数量的元素进行组合,例如:$a = [1,2,3,4,5,6,7,8,9],进行任意取5个元素排列组合,获取组合数
$a = array('1','2','3','4','5','6','7','8','9');
function getRank($arr, $len=0, $str="") {
global $arr_getrank;
$arr_len = count($arr);
if($len == 0){
$arr_getrank[] = $str;
}else{
for($i=0; $i<$arr_len; $i++){
$tmp = array_shift($arr);
if (empty($str))
{
getRank($arr, $len-1, $tmp);
}
else
{
getRank($arr, $len-1, $str.",".$tmp);
}
array_push($arr, $tmp);
}
}
}
$arr_getrank = array();
getRank($a, 5);
$new = array();
foreach ($arr_getrank as $k=>$v){
$b = explode(',',$v);
sort($b);
$c = implode(',',$b);
$new[]= $c;
}
$new = array_merge(array_unique($new));
echo '<pre style="padding: 5px;border-radius: 4px;background: #ddd;border: 1px solid #ccc">';
print_r($new);
echo '</pre>';die();