2010-08-22 17 views
7

¿Cómo comparar 2 matrices entre sí?
Por ejemplo tengo array("a", "b", "c") y array("a", "c", "b") Devolvería verdadero cuando se comparan. Pero si una de las letras no se encuentra en uno de ellos, devuelve falso. El orden no es importante.Comparación de matriz PHP

+0

puede ser algo tan simple como si (serializar (más o menos ($ matriz1)) == serialize (más o menos ($ matriz2)) –

+3

@Alec:? 'Sort' hace no devuelve la matriz. – soulmerge

+0

@soulmerge my bad ... –

Respuesta

18

que necesita para llevar el contenido de ambas matrices en el mismo orden antes de la comparación:

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

o uso asort() si desea mantener las llaves.

-3

que puede utilizar:

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

'empty' solo funciona en las variables – soulmerge

+3

Esto no funcionaría de todos modos, array_diff solo devuelve entidades de la matriz 1 que faltan en array2. También necesitaría verificar' array_diff ($ array2, $ array1) 'para completar. –

+0

@soulmerge, ahora' empty' funciona en expresiones desde PHP 5.5.0 al menos. – Jocelyn