2012-10-04 69 views
-1

可能重複:
php compare two associative arrays如何檢查兩個關聯php數組的值是否相等?

我有兩個PHP數組

$arr1 = array ([0] => apple, [1] => banana); 
$arr2 = array ([banana] => banana, [apple] => apple); 

在我的web應用程序,我不知道會是什麼順序和如何這些陣列中有很多元素。此外,一個數組使用數字作爲鍵,另一個數組使用鍵=值。

如何檢查$ arr1的值是否等於$ arr2的值?

非常感謝您的幫助

回答

1

使用array_values到兩個陣列中的所有值提取到數字鍵排列。然後進行一些排序/獨特的操作,以確保一切都按照相同的順序進行,並進行平等測試。

1

,因爲他們有不同的密鑰

$arr1 = array (0 => "apple", 1 => "banana"); 
$arr2 = array ("banana" => "banana", "apple" => "apple"); 

您可以使用array_diff

if(!array_diff($arr1, $arr2)) 
{ 
    // They are the same 
} 

您可以使用array_intersect

if(count($arr1) == count(array_intersect($arr1, $arr2))) 
{ 
     // They are the same ; 
} 

可使用數組array_filter

if(array_filter($arr2,function($var)use($arr1){return !in_array($var,$arr1);})) 
{ 
    // They are the same ; 
} 

您可以使用array_values

$arr2 = array_values($arr2); 
sort($arr1);sort($arr2); //sort to make sure they are in the same position 

if($arr1 === $arr2) 
{ 
    // They are the same 
} 
相關問題