请看 http://xuecs.com/blog/?p=54 ,
比较类似的题目。

解决方案 »

  1.   

    循环啊for($i=1;$i<=5-2;$i++){
     for($j=$i;$j<=5-1;$j++){
       for($k=$j;$k<=5;$k++){
          echo "$i,$j,$k <br/>";   }
     }
    }
      

  2.   

    上面有错
    for($i=1;$i<=5-2;$i++){
     for($j=$i+1;$j<=5-1;$j++){
       for($k=$j+1;$k<=5;$k++){
          echo "$i,$j,$k <br/>";   }
     }
    }
      

  3.   

    /**
     * 函数 combination
     * 功能 m取n的组合函数
     * 参数
     *  $ar 数组,原始数据
     *  $num 数值,每个组合的元素个数
     **/
    if(! function_exists('combination')):
    function combination($ar, $num) {
            $control = range(0, $num-1);
            $k = false;
            $total = count($ar);
            while($control[0] < $total-($num-1)) {
                    $t = array();
                    for($i=0; $i<$num; $i++) $t[] = $ar[$control[$i]];
                    $r[] = $t;                for($i=$num-1; $i>=0; $i--) {
                            $control[$i]++;
                            for($j=$i; $j<$num-1; $j++) $control[$j+1] = $control[$j]+1;
                            if($control[$i] < $total-($num-$i-1)) break;
                    }
            }
            return $r;
    }
    endif;/** 示例 **/
    print_r(combination(array(1,2,3,4,5), 3));