重複の可能性:
2 つの配列を持つ array_unique
2 つのサイズの配列間で一意の要素を見つける方法は??
$array1 = array(2,1,1,3,5,5);
$array2 = array(2,1,3,5);
重複の可能性:
2 つの配列を持つ array_unique
2 つのサイズの配列間で一意の要素を見つける方法は??
$array1 = array(2,1,1,3,5,5);
$array2 = array(2,1,3,5);
$array1 = array(2,1,1,3,5,5);
$array2 = array(2,1,3,5);
$array1 = array_unique($array1, SORT_NUMERIC);
$array2 = array_unique($array2, SORT_NUMERIC);
$unique = array_intersect($array1, $array2);
var_dump($unique);
収量:
array(4) {
[0] =>
int(2)
[1] =>
int(1)
[3] =>
int(3)
[4] =>
int(5)
}
もちろん、この例では、それが$array2
すでに答えであることを意味します。常にそうであるとは限らないと思います。
最初の配列に重複があるため、 array_intersect_assocとarray_uniqueを探していると思います
わかりましたので、「ユニーク」の意味が 100% わかりません。すべての配列で 1 回出現する値を探していると仮定します。それぞれに 1 回ではなく、合計で 1 回です。
ここで見つけたコードを借りると、次のようなことができます-
$array1 = array(2,1,1,3,5,5);
$array2 = array(2,1,3,5);
$array1 = array_unique($array1);
$array2 = array_unique($array2);
$merge = array_merge($array1,$array2);
// thanks @gumbo!
$final = array_diff($merge, array_diff_assoc($merge, array_unique($merge)));
このコードを実行するとどうなるでしょうか? $final
配列には何が含まれますか? データを取得すると、$final
配列間に一意の要素がないため、配列は空になります。そこに別の要素をドロップすると、$final
配列に値が入力されます。例えば -
$array1 = array(2,1,1,3,5,5,7);
$array2 = array(2,1,3,5);
この場合、$final
要素のみが含まれます7
。