q987654 发表于 2018-12-20 12:30:31

php 排列算法


[*]// 排列
[*]function Permutation($arr, $size = 1) {
[*]    $len = count($arr);
[*]    $start = array_slice(array_keys($arr), 0, $size);
[*]    $end = array_reverse(array_slice(array_keys($arr),-$size));
[*]    $r_arr = array();
[*]    do {
[*]      if ( compare($end, $start)=0; $i--) {
[*]      if ($arr[$i] + 1 < $max_num) {
[*]            $arr[$i]++;
[*]            return $arr;
[*]      } else {
[*]            if ($i == 0) return false;
[*]            $arr[$i] = 0;
[*]      }
[*]    }
[*]}
[*]
[*]// 数组大小比较
[*]function compare ($a, $b) {
[*]    for ($i=0; $i$b[$i] ? 1 : -1;
[*]      }
[*]    }
[*]    return 0;
[*]}
[*]
[*]$p = Permutation(array(1,2,3,4,5), 4);
[*]echo '';
[*]print_r($p);
[*]echo '';
[*]exit;




页: [1]
查看完整版本: php 排列算法