php数组排列组合

我就随便问问数组的排列组合,比如

$a = [

'a'=>'a1',

'b'=>'b1',

];

$b= [

'c'=>'c1',

'd'=>'d1',

]

结果:

$c = [

    [

        'a'=>'a1',

        'c'=>'c1',

    ],

     [

        'a'=>'a1',

        'd'=>'d1',

    ],

     [

        'b'=>'b1',

        'c'=>'c1',

    ],

     [

        'b'=>'b1',

        'd'=>'d1',

    ],

]

帅得一比
浏览 1512回答 1
1回答

qq_青枣工作室_0

这玩意,还真难搞。利用PHP的动态语言特性来做。<?php function array_cartesian_assoc(){     $args = func_get_args();     if(2 > $count=func_num_args()) return $args;     $ret=[]; $k=[]; $v=[];     $foreach = '';     for($i=0; $i<$count; $i++) $foreach.= "foreach(\$args[$i] as \$k[$i]=>\$v[$i])\n";     $foreach .= <<<'EOL'         {             $one = [];             for($j=0; $j<$count; $j++) {                 $one[$k[$j]] = $v[$j];             }             $ret[] = $one;         } EOL;     eval($foreach);     return $ret; } // 测试 $a = ['a'=>'a1', 'b'=>'b1']; $b = ['c'=>'c1', 'd'=>'d1']; $c = array_cartesian_assoc($a, $b); var_export($c);
打开App,查看更多内容
随时随地看视频慕课网APP