php两个数组求差
时间:2023-05-11 13:38
在PHP编程中,经常需要对数组进行操作,如取交、并、补集等。其中有一个常用的操作就是求两个数组的差集,即将一个数组中存在的元素在另一个数组中删除,得到差集。在本文中,我们将介绍两种不同的方法来求两个数组的差集。 方法一:使用array_diff()函数 array_diff()函数是PHP的一个内置函数,可以用来比较两个或多个数组的差异,返回一个差异数组。该函数的形式如下: 其中,$array1和$array2是要进行比较的两个数组,$...表示可以传递多组数组参数进行比较。该函数返回一个由所有存在于$array1但不存在于任何其他参数数组中的元素组成的关联数组。 下面我们来看一个例子: 上述代码输出的结果为: 可以看到,该函数成功地返回了两个数组的差异为[a, c, e]。 方法二:使用foreach循环 除了使用内置函数,我们还可以使用foreach循环来求两个数组的差集。该方法的实现方式为,遍历待求差集的数组1,并对数组2进行循环比较,如果数组1中的元素在数组2中存在,则将该元素在数组2中删除,否则将其存入一个结果数组中。 下面我们来看一个案例: 上述代码输出的结果与方法一相同: 可以看到,该方法通过双重循环实现了求差集的功能。在第一层循环中,遍历数组1中的每个元素;在第二层循环中,遍历数组2中的每个元素,并通过unset函数删除相同的元素,同时使用一个标识位$exist记录是否存在相同的元素。最后,将不在数组2中的元素存入结果数组中。 总结 在PHP编程中,求两个数组的差集是一项常用操作。本文介绍了两种求差集的方法,一种是使用内置函数array_diff(),另一种是通过双重循环实现。无论使用哪种方法,都可以轻松地实现数组差集的求取。 以上就是php两个数组求差的详细内容,更多请关注Gxl网其它相关文章!array array_diff ( array $array1 , array $array2 [, array $... ] )
$array1 = array("a", "b", "c", "d", "e");$array2 = array("b", "d", "f");$result = array_diff($array1, $array2);print_r($result);
Array( [0] => a [2] => c [4] => e)
$array1 = array("a", "b", "c", "d", "e");$array2 = array("b", "d", "f");$result = array();foreach ($array1 as $value) { $exist = false; foreach ($array2 as $key => $val) { if ($val == $value) { unset($array2[$key]); $exist = true; break; } } if (!$exist) { $result[] = $value; }}print_r($result);
Array( [0] => a [2] => c [4] => e)