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

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

在进行数组操作的过程中,有时会遇到去除两个数组中相同元素的情况。在 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);
登录后复制

输出结果:

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人

立即学习PHP免费学习笔记(深入)”;

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);
登录后复制

输出结果:

立即学习PHP免费学习笔记(深入)”;

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);
登录后复制

输出结果:

立即学习PHP免费学习笔记(深入)”;

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

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

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

以上就是php怎么去除两个数组相同的值的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号