解决方案 »

  1.   

    function foo($d) {
      $r = array_pop($d);
      while($d) {
        $t = array();
        $s = array_pop($d);
        if(! is_array($s)) $s = array($s);
        foreach($s as $x) {
          foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y));
        }
        $r = $t;
      }
      return $r;
    }
    $ar = array(
      array(1,2,3,4),
      array('a','b','c'),
    );
    print_r(foo($ar));
    Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => a
            )    [1] => Array
            (
                [0] => 1
                [1] => b
            )    [2] => Array
            (
                [0] => 1
                [1] => c
            )    [3] => Array
            (
                [0] => 2
                [1] => a
            )    [4] => Array
            (
                [0] => 2
                [1] => b
            )    [5] => Array
            (
                [0] => 2
                [1] => c
            )    [6] => Array
            (
                [0] => 3
                [1] => a
            )    [7] => Array
            (
                [0] => 3
                [1] => b
            )    [8] => Array
            (
                [0] => 3
                [1] => c
            )    [9] => Array
            (
                [0] => 4
                [1] => a
            )    [10] => Array
            (
                [0] => 4
                [1] => b
            )    [11] => Array
            (
                [0] => 4
                [1] => c
            ))
      

  2.   


    //统计组合
    function zuhe($arr){
        if(count($arr) >= 2){
            $tmparr = array();
            $arr1 = array_shift($arr);
            $arr2 = array_shift($arr);
            foreach($arr1 as $k1 => $v1){
                foreach($arr2 as $k2 => $v2){
                    $tmparr[] = $v1.$v2;
                }
            }
            array_unshift($arr, $tmparr);
            $arr = zuhe($arr);
        }else{
            $arr = array_shift($arr);
        }
        return $arr;
    }$arr = array(
        array(1,2,3,4),
        array('a','b','c')/*,
        array(8,9,0),
        array('x','y','z')*/
    );print_r(zuhe($arr));
    /*
    Array
    (
        [0] => 1a
        [1] => 1b
        [2] => 1c
        
        [3] => 2a
        [4] => 2b
        [5] => 2c
        
        [6] => 3a
        [7] => 3b
        [8] => 3c
        
        [9] => 4a
        [10] => 4b
        [11] => 4c
    )*/