zoukankan      html  css  js  c++  java
  • 二维数组循环拼成多种组合

    二维数组循环拼成多种组合

        $count = count($where_str);
        for ($i=$count-1; $i >=1 ; $i--) { 
        $t = $this->getCombinationToString($where_str, $i);
        $t2 = $this->getunique($t);
          foreach ($t2 as $key => $val) {
              var_dump($val);
              echo "</br>";                        
          }                
        }
        function getunique($t){
            $t2 = array();
            for($i=0;$i<count($t);$i++){
                $count_list = array_count_values($t[$i]);
                $flag = 1;
                foreach($count_list as $ck=>$cv){
                    if($cv>1){
                        $flag = 0;
                        break;
                    }
                }
                if($flag){
                    sort($t[$i]);
                    $flag2 = 1;
                    if($t2){
                        foreach($t2 as $t2k=>$t2v){
                            if($t[$i]==$t2v){
                                $flag2 = 0;
                                break;
                            }
                        }
                    }
                    if($flag2){
                        $t2[] = $t[$i];
                    }
                }
            }
            return $t2;
        }
         
        function getCombinationToString($arr, $m) {
            if ($m ==1) {
             return $arr;
            }
            $result = array();
             
            $tmpArr = $arr;
            unset($tmpArr[0]);
            for($i=0;$i<count($arr);$i++) {
                $s = $arr[$i];
    $ret = $this->getCombinationToString(array_values($tmpArr), ($m-1), $result);
                foreach($ret as $row) {
                    //$result[] = $s . $row;
                    $temp = array();
                    $temp[] = $s;
                    if(is_array($row)){
                        $temp = array_merge($temp,$row);
                    }else{
                        $temp[] = $row;
                    }
                    sort($temp);
                    $result[] = $temp;
                }
            }
         return $result;
        }
  • 相关阅读:
    JAVAGUI设计步骤
    JAVA接口基础知识总结
    静态关键字static用法。
    JAVA面向对象的多态性
    java封装的概念
    多线程
    关于集合类间的区别
    JAVA——异常
    java——内部类
    Java——接口
  • 原文地址:https://www.cnblogs.com/zinging/p/14334024.html
Copyright © 2011-2022 走看看