PHP组合函数
2013-2-3 17:11 Sunday  

分类: PHP 标签: return type array num mathZuhe 评论(73) 浏览(36229)

最近有用到一个组合功能,特地研究了一下,写出了如下函数

/**
 * 获取一个数组的组合.
 * @param type $array
 * @param type $num
 * @return type
 */
function mathZuhe($array,$num) {
    /**
     * 用于组合用的方法
     * @param type $array
     * @param type $num
     * @param type $out
     * @param type $end
     * @return type
     */
    function mathZuhe_private($array, $num, $out = array(),&$end=array()) {
//    print_r($jg);
//    var_dump($array);
        if (!is_array($array) || !$array) {
            return;
        }
        $totalnum = count($array);
        if ($totalnum < $num || $num == 0) {
            return;
        }
        if ($num == 1) {
            foreach ($array as $value) {
                //这里是最终的结果展示
                $end[] = array_merge($out, array($value));
            }
            return;
        } else {
            foreach ($array as $value) {
                array_shift($array);
                if (count($array) >= $num - 1) {
                    $merge = array_merge($out, array($value));
                    mathZuhe_private($array, $num - 1, $merge,$end);
                }
            }
            return;
        }
    }
    mathZuhe_private($array,$num,array(),$jg);
    return $jg;
}

使用方法:

$array = array('a','b','c','d','e','f');
$out = mathZuhe($array,3);

 

 

 

 

+1 32

留下你的看法: