2010-08-22 12 views
7

Come confrontare 2 array tra loro?
Ad esempio, ho array("a", "b", "c") e array("a", "c", "b") Restituisce vero quando vengono confrontati. Ma se una delle lettere, se non trovata in una di esse, restituisse false. L'ordine non è importante.Confronto array PHP

+0

Può essere qualcosa di semplice come se (serializzare (in ordine ($ array1)) == serialize (in ordine ($ array2)) –

+3

@Alec:? 'Sort' fa – soulmerge

+0

@soulmerge my bad ... –

risposta

18

è necessario portare il contenuto di entrambi gli array nello stesso ordine prima del confronto:

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

Oppure usare asort() se si desidera mantenere le chiavi.

-3

È possibile utilizzare:

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

'empty' funziona solo sulle variabili – soulmerge

+3

Questo non funzionerebbe comunque, array_diff restituisce solo le entità da array1 che mancano dall'array 2. Dovresti anche controllare' array_diff ($ array2, $ array1) 'per completezza –

+0

@soulmerge, ora' empty' funziona sulle espressioni dal PHP 5.5.0 almeno. – Jocelyn