2010-08-22 201 views
7

如何比較2個數組彼此?
例如我有array("a", "b", "c")array("a", "c", "b")它們在比較時會返回true。但是如果其中一個字母沒有在其中一箇中找到,它將返回錯誤。訂單並不重要。PHP數組比較

+0

可以說,它是簡單的東西,就好像(連載(排序($數組1))==連載(排序($數組2)) – 2010-08-22 10:24:32

+3

@Alec:'sort'做沒有返回數組 – soulmerge 2010-08-22 10:31:56

+0

@soulmerge我的壞... – 2010-08-22 15:08:43

回答

18

您需要之前比較帶來兩個陣列的內容轉換成相同的順序:

sort($array1); 
sort($array2); 
// now you can compare as usual 
if ($array1 == $array2) ... 

或者使用asort()如果你想保持鍵。

-3

您可以使用:

if (empty(array_diff($array1, $array2)) { 
    // do something 
} 
+1

'empty'只能在變量上工作 – soulmerge 2010-08-22 10:29:42

+3

反正這樣也行不通,array_diff只返回array1中丟失的實體,你還需要檢查'array_diff $ array2,$ array1)'作爲完整性。 – 2010-08-22 11:41:05

+0

@soulmerge,現在'empty'至少在PHP 5.5.0以後的表達式上工作。 – Jocelyn 2016-08-06 10:55:23