zoukankan      html  css  js  c++  java
  • PHP 字符串组合示例

    //字符串组合函数
    function StrCombinations($arr, $len=0,&$res, $str=""){
        $arr_len = count($arr);
        if($len == 0){
            $res[] = $str;
        }else{
            for($i=0; $i<$arr_len; $i++){
                $tmp = array_shift($arr);
                if (empty($str)){
                    StrCombinations($arr, $len-1, $res,$tmp);
                }else{
                    StrCombinations($arr, $len-1, $res,$str."|".$tmp);
                }
                array_push($arr, $tmp);
            }
        }
    }

    调用:

    //比如:要对字符串('1120','1166','1118')3个一组进行组合,
    //首先将字符创封装成数组;
    $arr = array('1120','1166','1118');
     
    //调用函数
    StrCombinations($arr, 3,$result);
     
    //输出组合结果
    print_r($result);
    /*
    Array
    (
        [0] => 1120|1166|1118
        [1] => 1120|1118|1166
        [2] => 1166|1118|1120
        [3] => 1166|1120|1118
        [4] => 1118|1120|1166
        [5] => 1118|1166|1120
    )
    */

    这里组合方法的核心是递归,效率很低。如有更好的解决方案,希望大家能分享!

  • 相关阅读:
    全网数据库大全
    Docker最全教程
    枚举策略
    POJ 1012
    阿里云轻量应用服务器入门(二)
    阿里云轻量应用服务器入门(一)
    云服务器ECS
    Codeforces 768B B. Code For 1
    链剖&LCT总结
    O(1) 查询gcd
  • 原文地址:https://www.cnblogs.com/houdj/p/13611860.html
Copyright © 2011-2022 走看看