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
    )
    */

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

  • 相关阅读:
    为什么要用do-while(0)?
    网络字节序&大小端存储
    sql语句w3school教程
    C++编码规范
    std::deque双端队列介绍
    gdb基本操作
    gdb调试多线程
    数据库基础
    删除vector所有元素
    stl迭代器失效
  • 原文地址:https://www.cnblogs.com/houdj/p/13611860.html
Copyright © 2011-2022 走看看