-1

重複の可能性:
2 つの配列を持つ array_unique

2 つのサイズの配列間で一意の要素を見つける方法は??

$array1 = array(2,1,1,3,5,5);   
$array2 = array(2,1,3,5); 
4

3 に答える 3

2

両方の配列に存在する値が必要な場合:

$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すでに答えであることを意味します。常にそうであるとは限らないと思います。

于 2012-12-17T23:42:42.560 に答える
0

最初の配列に重複があるため、 array_intersect_assocarray_uniqueを探していると思います

于 2012-12-17T23:40:01.227 に答える
0

わかりましたので、「ユニーク」の意味が 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

于 2012-12-17T23:44:25.217 に答える