首頁 > 後端開發 > PHP問題 > php怎麼比較兩個陣列並回傳不同元素

php怎麼比較兩個陣列並回傳不同元素

青灯夜游
發布: 2023-03-16 07:16:01
原創
2342 人瀏覽過

比較方法:1、用「array_diff(數組1,數組2)」語句,比較鍵值;2、用「array_diff_key(數組1,數組2)」語句,比較鍵名;3、用“array_diff_assoc(數組1,數組2)”語句,同時比較數組的鍵名和鍵值。

php怎麼比較兩個陣列並回傳不同元素

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php比較兩個數組並回傳不同元素

想要比較兩個數組,取得不同元素,就是比較數組取差集。

在PHP中,可以使用以下函數來取差集:

  • #array_diff()函數

  • array_diff_key()函數

  • array_diff_assoc()函數

#1、array_diff()函數--比較陣列的鍵值

array_diff($arr1,$arr2...)函數只比較數組的鍵值,會傳回一個差集數組,差集數組中的元素是存在於被比較的數組$arr1中,但不存在於其他參數數組$arr2...中的。

範例:傳回陣列的不同元素

1

2

3

4

5

6

7

8

9

10

<?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"=>"red","r"=>"yellow");

var_dump($arr1);

var_dump($arr2);

$result=array_diff($arr1,$arr2);

echo "两个数组中,不同的元素为:";

var_dump($result);

?>

登入後複製

php怎麼比較兩個陣列並回傳不同元素

#在上面的範例,$arr1陣列和$arr2陣列中只有1個鍵名不相同,以陣列$arr1為準就會得到值「"c"=>"blue"」。

2、array_diff_key()函數--比較陣列的鍵名

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

範例:傳回陣列的不同元素

1

2

3

4

5

6

7

8

9

10

<?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"=>"red","r"=>"yellow");

var_dump($arr1);

var_dump($arr2);

$result=array_diff_key($arr1,$arr2);

echo "两个数组中,不同的元素为:";

var_dump($result);

?>

登入後複製

php怎麼比較兩個陣列並回傳不同元素

#上面的範例,$arr1陣列和$arr2陣列中有兩個鍵名不相同,以陣列$arr1為準就會得到值「"c"=>"blue"」和「"d"=>"yellow"」。

3、array_diff_assoc()函數--比較陣列的鍵名和鍵值

array_diff_assoc($arr1,$arr2...)函數會將陣列的鍵名和鍵值都會進行比較,同樣傳回一個差集數組,差集元素和array_diff()、array_diff_key()一樣會從被比較的陣列$arr1中取得。

範例:傳回陣列的不同元素

1

2

3

4

5

6

7

8

9

10

<?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"=>"red","r"=>"yellow");

var_dump($arr1);

var_dump($arr2);

$result=array_diff_assoc($arr1,$arr2);

echo "两个数组中,不同的元素为:";

var_dump($result);

?>

登入後複製

php怎麼比較兩個陣列並回傳不同元素

#上例中,$arr1陣列和$arr2陣列進行比較,有三個不相同的元素,然後以陣列$arr1為準會得到值「"a"=>"red"」、「"c"=>"blue"」、「 "d"=>"yellow"」。

推薦學習:《PHP影片教學

以上是php怎麼比較兩個陣列並回傳不同元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板