比較步驟:1、使用「array_diff_assoc($arr1,$arr2)」語句比較兩個陣列的鍵名和鍵值,傳回一個差集陣列;2、用「差集數組==[] 」語句判斷差集數組是否為空數組,如果是空數組,則表示進行比較的兩個數組相等,反之不相等。
本教學操作環境: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); ?>
#透過輸出可以看出,$arr1和$arr2有差集,而$arr2和$arr3沒有差集
2、判斷差集數組是否為空數組
if($diff1==[]){ echo "两数组相等<br>"; } else{ echo "两数组不相等<br>"; }
#因為$arr1和$arr2的差集數組不為空數組,因此不相等
if($diff2==[]){ echo "两数组相等<br>"; } else{ echo "两数组不相等<br>"; }
因為$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中文網其他相關文章!