首頁 >後端開發 >php教程 >數組的並集、交集和差集函數

數組的並集、交集和差集函數

小云云
小云云原創
2017-11-23 15:37:493599瀏覽

php中的陣列函數真的是非常之多,實際工作中多了解一些php本身存在的一些函數,將會大大提高工作的速度。這篇文章分享在php中如何處理兩個或多個陣列的並集,交集和差集的函數。

(1)php計算兩個或多個陣列的並集

並集合即將兩個或多個數字組合為一個陣列的結果集合。 php中合併陣列一般都會用到 array_merge 與 + 這兩種操作。至於這兩者的區別,可參考本站文章:

PHP合併數組+與array_merge的區別

(1)php計算兩個或多個數組的交集

交集即是兩個或多個陣列中都存在的那一部分的資料的集合。計算陣列的交集主要用到了array_intersect系的函數,列舉如下:

array_intersect ( $arr , $arr2[…])  傳回一個陣列 $arr 與其他陣列的交集,鍵名稱不變。
array_intersect_assoc( $arr, $arr2[……]) 傳回一個陣列 $arr 與其他陣列的交集,同時比較鍵名,索引不變。
array_intersect_uassoc( $arr , $arr2 [……] , 'cmp_function ') 帶索引檢查數組的交集,用回呼函數,比較索引。
array_intersect_key ( $arr ,$arr2 [……] ) 使用鍵名比較計算陣列的交集。
array_intersect_ukey( $arr , $arr2 [……],'cmp_function'); 用回呼函數比較鍵名來計算陣列的交集。

array_uintersect ( $arr , $arr2 [……] , 'cmp_function' )   比較陣列中的交集 以回呼函數比較資料。
array_uintersect_assoc( $arr, $arr2[……] , 'cmp_function') 帶索引檢查陣列的交集 用回呼函數比較資料。
array_uintersect_uassoc($arr , $arr2 [……] , 'cmp_function' ) 帶索引檢查數組的交集 , 用回調函數比較資料和索引。

array_intersect 範例如下:

 $array1=array('a'=>'green','red','blue');    
$array2=array('b'=>'green','yellow','red');    
$result=array_intersect($array1,$array2);

$result 的結果將為:

Array
(
   [a]=>green
   [0]=>red
)

(1)php計算兩個或多個陣列的差集

差集即是除去交集之外的那一部分的資料的集合。計算數組的差集主要用到了array_diff系的函數,列舉如下:

array_diff( $arr , $arr2[……] )  返回一個數組,該數組包括了所有在$arr1 但是不在任何其他參數數組中的值,鍵名不變。
array_diff_uassoc( $arr ,$arr2 ,[……] , 'cmp_function') 用回呼函數做索引比較陣列中的差集。
array_diff_assoc( $arr , $arr2[……] ) 傳回一個數組,$arr 與其他數組的差集,同時比較鍵名,索引不變。

array_udiff ( $arr , $arr2 [……] , 'cmp_function') 用回呼函數比較資料來計算陣列的差集。
array_udiff_uassoc (  $arr ,$arr2 ,[……]  , 'cmp_function') 帶索引檢查陣列的差集,用回呼函數比較資料和索引。   
array_udiff_assoc ( $arr ,$arr2 ,[……] , 'cmp_function')  帶索引檢查數組的差集,用回呼函數比較數據,鍵名也比較。

array_diff 範例如下:

$array1=array('a'=>'green','red','blue','red');    
$array2=array('b'=>'green','yellow','red');    
$result=array_diff($array1,$array2);

$result 的結果將為:

array(1=>'blue')

#以上就是php數組的並集、交集與差集函數的簡單介紹,具體使用大家可以參考php手冊

相關推薦:

php陣列簡單求交集與差集以及並集功能的實作範例

總結關於陣列並集注意點

php多個陣列並集、交集和差集操作函數總結

以上是數組的並集、交集和差集函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn