如何在PHP中找到两个数组中的唯一元素


How to find the unique elements in two arrays in PHP?

例如,我在PHP中有两个数组:

$arr1 = array(1,3,5);
$arr2 = array(1,4,6);

我想创建两个新的数组,每个数组都包含每个数组唯一的元素。所以我想得到以下两个数组作为输出:

$arr1_uniques = array(3,5);
$arr2_uniques = array(4,6);

实现这一目标的最佳方式是什么?

使用array_diff()从另一个数组中减去每个数组,如下所示:

$arr1_uniques = array_diff($arr1, $arr2);
$arr2_uniques = array_diff($arr2, $arr1);
$arr1_uniques = array_diff($arr1, $arr2);
$arr2_uniques = array_diff($arr2, $arr1);

http://php.net/array_diff

您可以使用array_diff函数来解决这个问题。你必须使用两次才能得到你想要的结果。

您可以编写自己的函数。例如:

function uniq(array $arr){
$temp_arr = [];
for ($i = 0; $i < sizeof($arr); $i++) {
    if (in_array($arr[$i], $temp_arr)) {
            continue;
    }
    $temp_arr[] = $arr[$i];
    }
return $temp_arr;
}
print_r(uniq([1, 2, 3, 6, 6, 6, 7, 8, 7, 2, 2, 3, 6, 7, 0, 12, 123, 1, 4, 7, 66, 77]));
///Output: Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 6
[4] => 7
[5] => 8
[6] => 0
[7] => 12
[8] => 123
[9] => 4
[10] => 66
[11] => 77
)