二维数组排列组合问题(不考虑顺序)

<?php
function getArrSet($arrs,$_current_index=-1)
{
    //总数组
    static $_total_arr;
    //总数组下标计数
    static $_total_arr_index;
    //输入的数组长度
    static $_total_count;
    //临时拼凑数组
    static $_temp_arr;
    
    //进入输入数组的第一层,清空静态数组,并初始化输入数组长度
    if($_current_index<0)
    {
        $_total_arr=array();
        $_total_arr_index=0;
        $_temp_arr=array();
        $_total_count=count($arrs)-1;
        getArrSet($arrs,0);
    }
    else
    {
        //循环第$_current_index层数组
        foreach($arrs[$_current_index] as $v)
        {
            //如果当前的循环的数组少于输入数组长度
            if($_current_index<$_total_count)
            {
                //将当前数组循环出的值放入临时数组
                $_temp_arr[$_current_index]=$v;
                //继续循环下一个数组
                getArrSet($arrs,$_current_index+1);
                
            }
            //如果当前的循环的数组等于输入数组长度(这个数组就是最后的数组)
            else if($_current_index==$_total_count)
            {
                //将当前数组循环出的值放入临时数组
                $_temp_arr[$_current_index]=$v;
                //将临时数组加入总数组
                $_total_arr[$_total_arr_index]=$_temp_arr;
                //总数组下标计数+1
                $_total_arr_index++;
            }


        }
    }
    
    return $_total_arr;
}


/*************开始测试**************/
$arr=array(
    array('a','b','c'),
    array('A','B','C'),
    array('1','2','3'),
    array('I','II','III')
);


var_dump(getArrSet($arr));


运行结果:

array(81) {
  [0]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [1]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [2]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [3]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [4]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [5]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [6]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [7]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [8]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [9]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [10]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [11]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [12]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [13]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [14]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [15]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [16]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [17]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [18]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [19]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [20]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [21]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [22]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [23]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [24]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [25]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [26]=>
  array(4) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [27]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [28]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [29]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [30]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [31]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [32]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [33]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [34]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [35]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [36]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [37]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [38]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [39]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [40]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [41]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [42]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [43]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [44]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [45]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [46]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [47]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [48]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [49]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [50]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [51]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [52]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [53]=>
  array(4) {
    [0]=>
    string(1) "b"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [54]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [55]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [56]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [57]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [58]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [59]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [60]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [61]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [62]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "A"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [63]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [64]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [65]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [66]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [67]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [68]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [69]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [70]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [71]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "B"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
  [72]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(1) "I"
  }
  [73]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(2) "II"
  }
  [74]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "1"
    [3]=>
    string(3) "III"
  }
  [75]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(1) "I"
  }
  [76]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(2) "II"
  }
  [77]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "2"
    [3]=>
    string(3) "III"
  }
  [78]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "I"
  }
  [79]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(2) "II"
  }
  [80]=>
  array(4) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "C"
    [2]=>
    string(1) "3"
    [3]=>
    string(3) "III"
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值