配列の配列の交点を見つけることで新しい配列を構築しています。配列の交点を見つけて新しい配列のセットを作成
これはおそらく、ほとんどの人にとって単純な集合理論の問題ですが、私の頭を包み込むのは難しいです。
だから私は鍵付き配列があります。
$myArray = [
'array1' => [A, B, C],
'array2' => [A, B, C, D],
'array3' => [A, B, C, D],
'array4' => [D],
]
をそして目標は、彼らが交差している場合、前の列の連結キーとキー入力全く新しい配列を構築することです:基本的にこのよう
を:
$newArray = [
'array1,array2,array3' => [A, B, C],
'array2,array3,array4' => [D]
]
配列1、配列2、ARRAY3コマンドでABCを有するので、彼らはそうで配列2、ARRAY3、array4と同じものキー付きのアレイとして形成されます。
私はarray_intersectを実験しようとしましたが、探しているものではないか、おそらく私が本当に間違った方法で解決しているようです。どんなアイデアでも大歓迎です。
$myArray = [
'array1' => [A, B, C],
'array2' => [A, B, C, D],
'array3' => [A, B, C, D],
'array4' => [D],
];
$newArray = [];
$keys = array_keys($myArray);
for($i = 0, $size = count($myArray); $i < $size; $i++){
for($k = $i; $k < $size; $k++){
print_r(array_intersect($myArray[$keys[$i]], $myArray[$keys[$k]]));
}
}
//Foal
// 'array1,array2,array3' => [A, B, C]
// 'array2,array3,array4' => [D]
質問は完全に定義されていないです。 '$ newArray'にはキー' 'array1、array4''と' '[A]、 ''、C、D 'などのキー' 'array2、array3''も含まれていますか? – axiac
'array2、array3'は、' array1、array2、array3'、 'array2、array3、array4'の中にすべての要素が存在するので含まれていませんが、set理論では空集合も新しいエントリとみなされます – XDProgrammer