php一维数组排列组合,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\$v[$i])\n";

$foreach .= <<

{

$one = [];

for($j=0; $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);

你可能感兴趣的:(php一维数组排列组合)