私が必要とするもの
重複のないn要素の可能なすべてのペアが必要です。PHPで重複しないn要素のすべての対を取得する
$arr1 = [2, 4, 6, 7];
$arr2 = [6, 5, 4, 11];
$arr3 = [22, 1, 5, 8];
$final = [
'a' => $arr1,
'b' => $arr2,
'c' => $arr3
];
私が今必要なのである:
function getPairs($array) {
$n = count($array);
$finalArray = [];
$i = 0;
foreach ($array as $a) {
for ($x = $n-1; 0 <= $x; $x--) {
if ($i != $x) {
$finalArray[] = [$array[$i], $array[$x]];
}
}
$i++;
}
return $finalArray;
}
そして:私は
が、私はこの時点まで来ました何
$pairs = [
'ab' => [$arr1, $arr2],
'ac' => [$arr1, $arr3],
'bc' => [$arr2, $arr3]
];
のは、私はこれらの配列をしたとしましょう:
$arr1 = [2, 4, 6, 7];
$arr2 = [6, 5, 4, 11];
$arr3 = [22, 1, 5, 8];
$merged = [$arr1, $arr2, $arr3];
$pairs = getPairs($merged);
は私のアプローチには二つの問題があります。
ループは$x = 0
、$i = 1
以降$i = 1
、結果$x = 0
、重複配列を生成
- 。
- これにはキーがありません(
ab
、ac
、cb
)。
似この質問へのが、配列のキーを持つ:Get all the combinations of N elements of multidimensional array
"常にペアのメンバーの1つが常に"下位の "キーを持つことを保証します。"それは欠けている部分だった。ありがとう、あなたは素晴らしいです! – Julian