首頁 >後端開發 >PHP問題 >PHP數組學習如何比較兩個數組求差集

PHP數組學習如何比較兩個數組求差集

青灯夜游
青灯夜游原創
2021-08-04 11:38:434674瀏覽

在上一篇文章中介紹了比較數組取得相同元素(交集)的方法,有興趣可以點選查閱→《PHP數組學習之如何比較兩個數組求交集》。既然可以求交集,那也可以求差集,那要怎麼取得差集?本篇文章就來跟大家介紹PHP比較陣列取得不同元素(差集)的幾種方法。

和上一篇文章一樣,我們先來看看比較兩個陣列求差集的函數,PHP內建了多個函數,本文主要介紹常用的三個函數:array_diff()、 array_diff_key()、array_diff_assoc(),它們分別會從「鍵值」、「鍵名」、「鍵值和鍵名」方面來比較數組,返回差集數組,差集元素會從被比較的那個數組(在第一個參數)中獲取。

空說不好理解,下面我們透過程式碼範例來具體看看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”,因此輸出的結果為:

PHP數組學習如何比較兩個數組求差集

#2、使用array_diff_key()函數--比較陣列的鍵名稱

#

array_diff_key($arr1,$arr2...)函數只比較數組的鍵名,同樣傳回一個差集數組,差集數組中的元素是存在於被比較的數組#在 ##$arr1中,但不存在於其他參數陣列$arr2...中的。

而在上面的範例,

$arr1陣列和$arr2陣列中有兩個鍵名不相同,以陣列$arr1為準就會得到值“"c"=>"blue"”和“"d"=>"yellow"”,因此輸出的結果為:

PHP數組學習如何比較兩個數組求差集

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陣列的免費影片教學:

PHP函數之array陣列函數影片講解,快來學習吧!

以上是PHP數組學習如何比較兩個數組求差集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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