在之前的文章《PHP字符串學(xué)習(xí)之比較兩個(gè)字符串》中,我們介紹了比較兩個(gè)字符串的方法。字符串和數(shù)組都是PHP中重要的數(shù)據(jù)類(lèi)型,我們不僅要了解比較字符串的方法,也要了解比較數(shù)組的方法。下面給大家介紹一下比較數(shù)組,并返回相同元素(交集)的方法。
首先我們要知道PHP提供了多個(gè)函數(shù)來(lái)比較兩個(gè)數(shù)組求交集,本文主要介紹常用的三個(gè)函數(shù):array_intersect()、array_intersect_assoc()和array_intersect_key()。
好了,進(jìn)入主題!我們有下面兩個(gè)數(shù)組:
$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"pink","r"=>"yellow");
下面我們通過(guò)代碼示例來(lái)分別看看array_intersect()、array_intersect_assoc()和array_intersect_key()是如何比較數(shù)組求交集的。
1、array_intersect()函數(shù)–比較數(shù)組的鍵值
<?php header("Content-type:text/html;charset=utf-8"); $arr1=array("a"=>"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ù)組的鍵值,然后返回一個(gè)交集數(shù)組,該數(shù)組中包含了所有在被比較的數(shù)組$arr1
中,同時(shí)也在任何其他參數(shù)數(shù)組$arr2...
中的值。(交集數(shù)組中的元素都是選用被比較的數(shù)組$arr1中的元素)
$arr1數(shù)組和$arr2數(shù)組中都存在的鍵值有2個(gè):“green
”和“yellow
”,然后從被比較的數(shù)組$arr1中選取交集元素,因此輸出的結(jié)果為:
2、array_intersect_key()函數(shù)–比較數(shù)組的鍵名
<?php header("Content-type:text/html;charset=utf-8"); $arr1=array("a"=>"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ù)組的鍵名,然后返回一個(gè)交集數(shù)組,交集元素會(huì)根據(jù)鍵名從被比較的數(shù)組$arr1
中選取的。
我們來(lái)看看上面的示例,$arr1
數(shù)組和$arr2
數(shù)組中都存在的鍵名有2個(gè):“a
”和“b
”,然后根據(jù)鍵名從被比較的數(shù)組$arr1
中選取元素,因此輸出的結(jié)果為:
3、array_intersect_assoc()函數(shù)–比較數(shù)組的鍵名和鍵值
<?php header("Content-type:text/html;charset=utf-8"); $arr1=array("a"=>"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…)會(huì)比較數(shù)組的鍵名和鍵值,然后返回一個(gè)交集數(shù)組。
在上面的示例中,$arr1數(shù)組和$arr2數(shù)組中鍵名和鍵值都相同的元素只有一個(gè):“"b"=>"green"
”,因此輸出的結(jié)果為:
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來(lái)學(xué)習(xí)吧!