如何合并两个数组,而在PHP中两个数组中都没有项目?

时间:2019-07-03 03:00:35

标签: php arrays

我有2个数组:

$arr_1 = ['1','2','3','4'];

$arr_2 = ['2','5','4','6','7'];

我想将$arr_1$arr_2合并在一起,而这两个数组中都没有这样的项目:

$arr_merged = ['1','3','5','6','7']

我该怎么做?我想我必须运行一些foreach来遍历这些数组和句柄,但是对于这个问题,它似乎并不是一个很好的解决方案...

2 个答案:

答案 0 :(得分:4)

要获取唯一项,可以使用array_diff()函数来查找两个数组之间的差异。它计算所有数组的差,并返回所有包含在任何数组中都无法匹配的条目的数组。对于合并两个数组,可以使用array_merge()函数。

<?php
    $arr_1 = ['1','2','3','4'];
    $arr_2 = ['2','5','4','6','7'];
    $arr_merged  = array_merge(array_diff($arr_1, $arr_2), array_diff($arr_2, $arr_1));
    print_r($arr_merged);
 ?>

答案 1 :(得分:2)

您将array_diffarray_merge一起使用以实现输出。

注意:array_diff从技术上讲与array_intersect相反。

   <?php
        $arr_1 = ['1','2','3','4'];
        $arr_2 = ['2','5','4','6','7'];
        $diff_1 = array_diff($arr_1, $arr_2);
        $diff_2 = array_diff($arr_2, $arr_1);
        $array_merge = array_merge($diff_1,$diff_2);
        print_r($array_merge);
    ?>