三種方法:1、用array_intersect()比較鍵值獲取交集,語法“array_intersect(數(shù)組1,數(shù)組2)”;2、用array_intersect_key()比較鍵名獲取交集,語法“array_intersect_key(數(shù)組1,數(shù)組2)”;3、比較鍵名和鍵值獲取交集,語法“array_intersect_assoc(數(shù)組1,數(shù)組2)”。
php入門到就業(yè)線上直播課:進入學習
API 文檔、設計、調試、自動化測試一體化協(xié)作工具:點擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
PHP提供了多個函數(shù)來比較兩個數(shù)組求交集,下面主要介紹常用的三個函數(shù):array_intersect()、array_intersect_assoc()和array_intersect_key()。
好了,進入主題!我們有下面兩個數(shù)組:
$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"pink","r"=>"yellow");
下面我們通過代碼示例來分別看看array_intersect()、array_intersect_assoc()和array_intersect_key()是如何比較數(shù)組求交集的。
1、array_intersect()函數(shù)–比較數(shù)組的鍵值
"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"pink","r"=>"yellow"); $result=array_intersect($arr1,$arr2); var_dump($result); ?>
array_intersect($arr1,$arr2...)
函數(shù)只比較數(shù)組的鍵值,然后返回一個交集數(shù)組,該數(shù)組中包含了所有在被比較的數(shù)組$arr1
中,同時也在任何其他參數(shù)數(shù)組$arr2...
中的值。(交集數(shù)組中的元素都是選用被比較的數(shù)組$arr1中的元素)
$arr1數(shù)組和$arr2數(shù)組中都存在的鍵值有2個:“green
”和“yellow
”,然后從被比較的數(shù)組$arr1中選取交集元素,因此輸出的結果為:
2、array_intersect_key()函數(shù)–比較數(shù)組的鍵名
"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"pink","r"=>"yellow"); $result=array_intersect_key($arr1,$arr2); var_dump($result); ?>
array_intersect_key($arr1,$arr2...)
只比較數(shù)組的鍵名,然后返回一個交集數(shù)組,交集元素會根據(jù)鍵名從被比較的數(shù)組$arr1
中選取的。
我們來看看上面的示例,$arr1
數(shù)組和$arr2
數(shù)組中都存在的鍵名有2個:“a
”和“b
”,然后根據(jù)鍵名從被比較的數(shù)組$arr1
中選取元素,因此輸出的結果為:
3、array_intersect_assoc()函數(shù)–比較數(shù)組的鍵名和鍵值
"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"pink","r"=>"yellow"); $result=array_intersect_assoc($arr1,$arr2); var_dump($result); ?>
array_intersect_assoc($arr1,$arr2…)會比較數(shù)組的鍵名和鍵值,然后返回一個交集數(shù)組。
在上面的示例中,$arr1數(shù)組和$arr2數(shù)組中鍵名和鍵值都相同的元素只有一個:“"b"=>"green"
”,因此輸出的結果為:
推薦學習:《PHP視頻教程》