龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php数组组合算法

时间:2014-07-27 15:05来源:网络整理 作者:网络 点击:
分享到:
php数组组合算法 [代码片段(43行)]
<?php
    function combination(){
        $array = array();
        $arguments = func_get_args();
        foreach($arguments as $argument){
            if(is_array($argument) === true){
                $array[] = $argument;
            }else{
                $array[] = array($argument);
            }
        }

        $size = count($array);

        if($size === 0){
            return array();
        }else if($size === 1){
            return is_array($array[0]) === true ? $array[0] : array();
        }else{
            $result = array();
            $a = $array[0];
            array_shift($array);
            if(is_array($array) === false){
                return $result;
            }

            foreach($a as $val){
                $b = call_user_func_array("combination", $array);
                foreach($b as $c){
                    if(is_array($c) === true){
                        $result[] = array_merge(array($val), $c);
                    }else{
                        $result[] = array($val, $c);
                    }
                }
            }
            return $result;
        }
    }

    print_r(combination(array("A1", "A2"), array("B1", "B2"), "1", array("C1", "C2", "C3")));
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接