たとえば、2 つの配列があります
グループ A: 10,11,12,13
グループ B: 14,15
それらを 10|14,11| に結合したいとします。 14,12| 14,13|14,10|15,11|15,12|15,13|15
ありがとうございます。グループ A、グループ B など、3 つのグループが存在する場合があります。 、グループ C、グループ D
何をしているのですか デカルト積を見つけるために、エッセンス領域にいくつかの関連する議論があります
ここに別のバージョンがあります
$a = array(10,11,12,13);$b = array(14,15);foreach(Descartes($a, $b) as $v) $r[] = join(',', $v);echo join('|', $r);
function Descartes($d) { if(func_num_args() > 1) $d = func_get_args(); $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; }
デカルト積を求めています。エッセンスエリア
こちらは別バージョンです
$a = array(10,11,12,13);$b = array(14,15);foreach(Descartes($a, $b) as $v) $r[] = join(',', $v);echo join('|', $r);
function Descartes($d) { if(func_num_args() > 1) $d = func_get_args(); $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; }
http://bbs. csdn.net/topics/391860657 神様、どうかこれを見て助けてください