3種方法:1、用array_diff()比較數組的鍵值,並以數組形式傳回差集,語法「array_diff(數組1,數組2)」;2、用array_diff_key()比較數組的鍵名,並以數組形式傳回差集,語法「array_diff_key(數組1,數組2)」;3、用array_diff_assoc()比較數組鍵名和鍵值,語法“array_diff_assoc(數組1,數組2)”。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在PHP中,可以利用以下3個內置函數來求陣列差集:
array_diff()
array_diff_key()
array_diff_assoc ()
它們分別會從「鍵值」、「鍵名」、「鍵值和鍵名」方面來比較數組,以數組形式傳回差集,差集元素會從被比較的那個陣列(第一個參數)中取得。
我們有下面兩個陣列:
$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $arr2=array("a"=>"orange","b"=>"green","e"=>"red","r"=>"yellow");
#1、使用array_diff()函數--比較陣列的鍵值
#array_diff($arr1,$arr2...)
函數只比較陣列的鍵值,會傳回一個差集數組,差集數組中的元素是存在於被比較的在陣列$arr1
中,但不存在於其他參數陣列$arr2...
中的。
我們來看看上面的範例,$arr1
陣列和$arr2
陣列比較,只存在於$arr1陣列的鍵值只有:「 blue
”,因此輸出的結果為:
#2、使用array_diff_key()函數--比較陣列的鍵名稱
#array_diff_key($arr1,$arr2...)
函數只比較數組的鍵名,同樣傳回一個差集數組,差集數組中的元素是存在於被比較的數組#在 ##$arr1中,但不存在於其他參數陣列
$arr2...中的。
$arr1陣列和
$arr2陣列中有兩個鍵名不相同,以陣列
$arr1為準就會得到值“
"c"=>"blue"”和“
"d"=>"yellow"”,因此輸出的結果為:
3、使用array_diff_assoc()函數--比較陣列的鍵名和鍵值
array_diff_assoc($arr1, $arr2...)函數會將數組的鍵名和鍵值都進行比較,同樣會傳回一個差集數組,差集元素和array_diff()、array_diff_key()一樣會從被比較的數組
$arr1中獲取。
$arr1數組和
$arr2數組進行比較,有三個不相同的元素,然後以數組$arr1為準會得到值“
"a"=>"red"」、「
"c"=>"blue"」、「
"d"=>"yellow"”,因此輸出的結果為:
PHP影片教學》
以上是php怎麼求數組的差集的詳細內容。更多資訊請關注PHP中文網其他相關文章!