从一个数组中取任意几位排列组合

        $arr = [1, 2, 3, 4, 5, 6];
        $finalRes = [];
        vs($arr, 0, [], $finalRes, 4);
        foreach($finalRes as $v){
            echo implode("", $v)."\r\n";
        }

        function vs($arr, $i, $res = [], &$finalRes = [], $num)
        {
            if (count($res) == $num) {
                $finalRes[] = $res;
                return;
            }
            if ($i == count($arr)) {
                return;
            }
            $res_  = $res;
            $res[] = $arr[$i];
            vs($arr, $i + 1, $res, $finalRes, $num);
            vs($arr, $i + 1, $res_, $finalRes, $num);
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容