有8個交集函數:1、array_intersect(),只比較鍵值;2、array_intersect_assoc(),比較鍵名和鍵值;3、array_intersect_key(),只比較鍵名;4、array_uintersect( )等。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
php中提供例如多個求陣列交集的函數:
array_intersect():比較數組,傳回兩個陣列的交集(只比較鍵值)。
array_intersect_assoc():比較數組,傳回兩個數組的交集(比較鍵名和鍵值)。
array_intersect_key():比較數組,傳回兩個數組的交集(只比較鍵名)。
array_intersect_uassoc():比較數組,傳回兩個數組的交集(比較鍵名和鍵值,使用使用者自訂比較函數)。
array_intersect_ukey():比較數組,傳回兩個數組的交集(只比較鍵名,使用使用者自訂比較函數)。
array_uintersect():比較數組,傳回兩個數組的交集(只比較鍵值,使用一個使用者自訂比較函數)。
array_uintersect_assoc():比較數組,傳回兩個數組的交集(比較鍵名和鍵值,使用內建函數比較,使用使用者自訂函數比較鍵值)。
array_uintersect_uassoc():比較數組,傳回兩個數組的交集(比較鍵名和鍵值,使用兩個使用者自訂的比較函數)。
下面介紹常用求數組交集的比較函數
1、array_intersect()函數
array_intersect() 函數用於比較兩個(或更多)數組的值,並傳回交集。
該函數比較兩個(或更多)數組的值,並傳回一個交集數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。
<?php header('content-type:text/html;charset=utf-8'); $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_intersect($a1,$a2); var_dump($result); ?>
2、array_intersect_assoc()函數
array_intersect_assoc() 函數用於比較兩個(或更多)數組的鍵名和鍵值,並傳回交集。
該函數比較兩個(或更多個)數組的鍵名和鍵值,並傳回一個交集數組,該數組包括了所有在被比較的數組(array1)中,同時也在任何其他參數陣列(array2 或 array3 等等)中的鍵名和鍵值。
<?php header('content-type:text/html;charset=utf-8'); $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"red","b"=>"green","c"=>"blue"); $result=array_intersect_assoc($a1,$a2); var_dump($result); ?>
3、array_intersect_key()函數
<?php header('content-type:text/html;charset=utf-8'); $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"red","c"=>"blue","d"=>"pink"); $result=array_intersect_key($a1,$a2); var_dump($result); ?>
說明:不常用的比較函數
array_intersect_uassoc()
array_intersect_ukey()
#array_uintersect()
array_uintersect_assoc()
#array_uintersect_uassoc()
<?php header('content-type:text/html;charset=utf-8'); function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_intersect_uassoc($a1,$a2,"myfunction"); var_dump($result); ?>
以上是php中兩個陣列求交集的函數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!