php两个数组的不同的值

王林
发布: 2023-05-24 16:57:38
原创
547 人浏览过

在PHP开发中,常常需要将两个数组中的不同值进行比较。当我们需要通过比较两个数组中的值进行操作时,就需要找出这两个数组中的不同值。本文将介绍如何在PHP中找出两个数组中的不同值,并提供示例代码。

方法一:array_diff函数

array_diff函数可以用于找出两个数组中不同的值。该函数可以接受两个或更多个数组作为参数,返回的则是一个新数组,该数组包含的是在第一个数组中存在而在其他数组中不存在的值。

该函数的语法如下:

array array_diff (array $array1 , array $array2 [, array $... ])

其中,$array1表示我们需要比较的第一个数组,$array2及后续的参数表示需要与$array1进行比较的其他数组。

下面是一个简单的示例代码,该代码创建了两个数组,并使用array_diff函数找出两个数组中不同的值:

$arr1 = array("apple", "banana", "orange"); $arr2 = array("banana", "orange", "pear"); $result = array_diff($arr1, $arr2); print_r($result);
登录后复制

运行该代码后,输出结果为:

Array ( [0] => apple )
登录后复制

可以看到,该代码比较了两个数组$arr1和$arr2,并将不同的值(即$arr1中的"apple")输出。

方法二:array_unique函数

另一种找出两个数组中不同值的方法是使用array_unique函数。该函数可以将一个数组中的重复值去除,并返回去除重复值后的新数组。我们可以通过利用array_unique函数与array_merge函数来找出两个数组中不同的值。

下面是一个利用array_unique函数和array_merge函数的示例代码:

$arr1 = array("apple", "banana", "orange"); $arr2 = array("banana", "orange", "pear"); $arr3 = array_merge($arr1, $arr2); $result = array_diff($arr3, array_unique($arr3)); print_r($result);
登录后复制

运行该代码后,输出结果为:

Array ( [0] => banana [1] => orange )
登录后复制

可以看到,该代码先使用array_merge函数将$arr1和$arr2合并到一起,再使用array_unique函数将重复的值去除,最后使用array_diff函数找出不同的值并输出。

方法三:foreach循环

另一种找出两个数组中不同值的方法是使用foreach循环。该方法通过遍历两个数组,并将不同的值存储到新数组中。

下面是一个利用foreach循环找出不同值的示例代码:

$arr1 = array("apple", "banana", "orange"); $arr2 = array("banana", "orange", "pear"); $result = array(); foreach ($arr1 as $value) { if (!in_array($value, $arr2)) { $result[] = $value; } } foreach ($arr2 as $value) { if (!in_array($value, $arr1)) { $result[] = $value; } } print_r($result);
登录后复制

运行该代码后,输出结果为:

Array ( [0] => apple [1] => pear )
登录后复制

可以看到,该代码先遍历$arr1,并将不同的值存储到$result数组中,然后再遍历$arr2,将不同的值存储到$result数组中。

综上所述,我们可以使用array_diff函数、array_unique函数和foreach循环等多种方法来找出两个数组中的不同值。在实际开发中,我们可以根据不同的情况选择合适的方法。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!