首頁 >後端開發 >PHP問題 >php如何比較兩個陣列是否相等

php如何比較兩個陣列是否相等

青灯夜游
青灯夜游原創
2022-04-29 20:32:036564瀏覽

比較步驟:1、使用「array_diff_assoc($arr1,$arr2)」語句比較兩個陣列的鍵名和鍵值,傳回一個差集陣列;2、用「差集數組==[] 」語句判斷差集數組是否為空數組,如果是空數組,則表示進行比較的兩個數組相等,反之不相等。

php如何比較兩個陣列是否相等

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

在php中,可以利用陣列差集來判斷兩個陣列是否相等。

  • 如果兩個陣列的差集為空,則這兩個陣列中沒有不同的元素,即兩個陣列是相等的

  • #如果兩個數組的差集不為空,則這兩個數組中有不同的元素,即兩個數組是不相等的

那麼數組差集要怎麼獲取尼?可以使用array_diff_assoc()函數。

  • array_diff_assoc()用於比較兩個(或更多)陣列的鍵名和鍵值 ,並傳回差集陣列。

只有數組鍵名和鍵值都相等的兩個數組,才相等。

實作步驟:

1、使用array_diff_assoc()取得陣列差集

<?php 
header("content-type:text/html;charset=utf-8");
$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$arr2=array("a"=>"red","b"=>"green","c"=>"blue");
$arr3=array("a"=>"red","b"=>"green","c"=>"blue");
$diff1=array_diff_assoc($arr1,$arr2);
var_dump($diff1);
$diff2=array_diff_assoc($arr2,$arr3);
var_dump($diff2);
?>

php如何比較兩個陣列是否相等

#透過輸出可以看出,$arr1和$arr2有差集,而$arr2和$arr3沒有差集

2、判斷差集數組是否為空數組

if($diff1==[]){
	echo "两数组相等<br>";
}
else{
	echo "两数组不相等<br>";
}

php如何比較兩個陣列是否相等

#因為$arr1和$arr2的差集數組不為空數組,因此不相等

if($diff2==[]){
	echo "两数组相等<br>";
}
else{
	echo "两数组不相等<br>";
}

php如何比較兩個陣列是否相等

因為$arr2和$arr3為空數組,因此相等。

擴充功能:將程式碼封裝一下:

<?php 
header("content-type:text/html;charset=utf-8");
function f($arr1,$arr2){
	$diff1=array_diff_assoc($arr1,$arr2);
	if($diff1==[]){
		echo "两数组相等<br>";
	}
	else{
		echo "两数组不相等<br>";
	}
}

$arr1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$arr2=array("a"=>"red","b"=>"green","c"=>"blue");
$arr3=array("a"=>"red","b"=>"green","c"=>"blue");

f($arr1,$arr2);

f($arr2,$arr3);
?>

php如何比較兩個陣列是否相等

#推薦學習:《PHP影片教學

以上是php如何比較兩個陣列是否相等的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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