Home  >  Article  >  Backend Development  >  php多个数组并集、交集和差集操作函数总结

php多个数组并集、交集和差集操作函数总结

WBOY
WBOYOriginal
2016-06-20 13:01:492739browse

php中的数组函数真的是非常之多,实际工作中多了解一些php自身存在的一些函数,将会大大提高工作的速度。

在php中如何处理两个或多个数组的并集,交集和差集的函数。

(1)php计算两个或多个数组的并集

并集即将两个或多个数组合为一个数组的结果集合。php中合并数组一般都会用到 array_merge 与 + 这两种操作。

(2)php计算两个或多个数组的交集

交集即是两个或多个数组中都存在的那一部分的数据的集合。计算数组的交集主要用到了array_intersect系的函数,列举如下:

array_intersect ( $arr , $arr2[……])  返回一个数组 $arr 与其他数组的交集,键名不变。

array_intersect_assoc( $arr, $arr2[……]) 返回一个数组 $arr 与其他数组的交集,同时比较键名,索引不变。<br />array_intersect_uassoc( $arr , $arr2 [……] , 'cmp_function ') 带索引检查数组的交集,用回调函数,比较索引。<br />array_intersect_key ( $arr ,$arr2 [……] ) 使用键名比较计算数组的交集。<br /><p>array_intersect_ukey( $arr , $arr2 [……],'cmp_function'); 用回调函数比较键名来计算数组的交集。</p><p>array_uintersect ( $arr , $arr2 [……] , 'cmp_function' )   比较数组中的交集 用回调函数比较数据。</p>array_uintersect_assoc( $arr, $arr2[……] , 'cmp_function') 带索引检查数组的交集 用回调函数比较数据。<br /><p>array_uintersect_uassoc($arr , $arr2 [……] , 'cmp_function' ) 带索引检查数组的交集 , 用回调函数比较数据和索引。</p><p>array_intersect 示例如下:</p><p>$array1=array('a'=>'green','red','blue');</p>$array2=array('b'=>'green','yellow','red');<br /><p>$result=array_intersect($array1,$array2);</p><p>$result 的结果将为:</p><p>Array</p>(<br />   [a]=>green<br />   [0]=>red<br /><p>)</p>

(3)php计算两个或多个数组的差集

差集即是除去交集之外的那一部分的数据的集合。计算数组的差集主要用到了array_diff系的函数,列举如下:

<p>array_diff( $arr , $arr2[……] )  返回一个数组,该数组包括了所有在$arr1 但是不在任何其他参数数组中的值,键名不变。</p>array_diff_uassoc( $arr ,$arr2 ,[……] , 'cmp_function') 用回调函数做索引比较数组中的差集。<br /><p>array_diff_assoc( $arr , $arr2[……] ) 返回一个数组,$arr 与其他数组的差集,同时比较键名,索引不变。</p><p>array_udiff ( $arr , $arr2 [……] , 'cmp_function') 用回调函数比较数据来计算数组的差集。</p>array_udiff_uassoc (  $arr ,$arr2 ,[……]  , 'cmp_function') 带索引检查数组的差集,用回调函数比较数据和索引。   <br /><p>array_udiff_assoc ( $arr ,$arr2 ,[……] , 'cmp_function')  带索引检查数组的差集,用回调函数比较数据,键名也比较。</p><p>array_diff 示例如下:</p><p>$array1=array('a'=>'green','red','blue','red');</p>$array2=array('b'=>'green','yellow','red');<br /><p>$result=array_diff($array1,$array2);</p><p>$result 的结果将为:array(1=>'blue')</p>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn