我就隨便問問數組的排列組合,比如$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',????],]
1 回答
已采納
qq_青棗工作室_0
TA貢獻446條經驗 獲得超754個贊
這玩意,還真難搞。利用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);- 1 回答
- 0 關注
- 1576 瀏覽
添加回答
舉報
0/150
提交
取消
