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;
        }
  • 相关阅读:
    12月19号 init和class
    12月18号 property关键字
    12月18号 属性property
    12月17号 类和对象
    12月17号 OC语言准备
    12月16号 文件操作
    12月16号 双链表
    12月15号 单链表
    2015.12.07 ATM
    2015.12.03 命名规范 输入输出 运算符 条件语句 循环语句
  • 原文地址:https://www.cnblogs.com/zinging/p/14334024.html
Copyright © 2011-2022 走看看