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

时间:2012-02-22 20:22:39

标签: php arrays

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

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

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

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

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

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

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

http://php.net/array_diff

答案 2 :(得分:0)

您可以使用array_diff功能来解决此问题。你必须使用它两次才能得到你想要的结果。

答案 3 :(得分:0)

您可以编写自己的功能。例如:

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
)