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;
        }
  • 相关阅读:
    origin 8.5 曲线拟合,延长曲线范围
    赤手空拳编写C#代码
    Vmware 10安装MAC OS X 10.9备忘
    Contest 1445
    Contest 1428
    Contest 1435
    Contest 991
    CSP-SJX2019 解题报告
    【BZOJ4817】【SDOI2017】树点染色
    codeforce 804B Minimum number of steps
  • 原文地址:https://www.cnblogs.com/zinging/p/14334024.html
Copyright © 2011-2022 走看看