首页 > 后端开发 > PHP问题 > php怎么去除两个数组相同的值

php怎么去除两个数组相同的值

PHPz
发布: 2023-04-27 09:30:46
原创
1337 人浏览过

在进行数组操作的过程中,有时会遇到去除两个数组中相同元素的情况。在 PHP 中,有多种方法可以实现这一目的。下面将介绍三种不同的方法。

方法一:使用数组函数 array_diff()

PHP 的 array_diff() 函数可以用于计算两个或多个数组的差集,即返回一个新数组,其值为在第一个数组中出现但未在其他数组中出现的元素。因此,我们可以使用 array_diff() 来找出两个数组中不同的元素,即相同元素的补集。

示例代码:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];
$result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1));
print_r($result);
登录后复制

输出结果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
登录后复制
登录后复制

上述代码首先用 array_diff() 函数找出了两个输入数组的补集,然后将其合并成一个新数组,即所有不同的元素。

方法二:使用循环遍历

我们还可以使用循环遍历的方式,将两个数组中相同的元素删除。要实现这个方法,我们需要先遍历一个数组,然后在另一个数组中查找相同元素,并将它从数组中删除。

示例代码:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];

foreach ($array1 as $key => $value) {
    if (in_array($value, $array2)) {
        unset($array1[$key]);
        unset($array2[array_search($value, $array2)]);
    }
}

$result = array_merge($array1, $array2);

print_r($result);
登录后复制

输出结果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
登录后复制
登录后复制

上述代码首先遍历了 $array1 中的元素,然后在 $array2 中查找相同的元素并将其移除。最后将两个数组合并成一个新数组。

方法三:使用数组函数 array_intersect()

另外一种方法是使用 PHP 的 array_intersect() 函数,该函数返回两个或多个数组的交集,即包含在所有输入数组中的元素。类似于上文的第一种方法,这种方法也是找到两个数组中相同的元素,然后将它们组成一个新数组。

示例代码:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];

$result = array_intersect($array1, $array2);

print_r($result);
登录后复制

输出结果:

Array
(
    [2] => 3
    [4] => 5
)
登录后复制

上述代码直接使用了 array_intersect() 函数,找到了 $array1 和 $array2 中相同的元素,即 3 和 5。

这些方法中,使用 array_diff() 的代码最为简洁,同时也是最高效的,因为它可以一次完成所有任务。使用循环遍历的方法虽然简单易懂,但是稍微有些复杂,同时也可能会比较耗时。最后,使用 array_intersect() 的方法需要注意,因为它只返回相同的元素,而不是两个数组的差集,因此不适用于所有的情况。

以上是php怎么去除两个数组相同的值的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板