Comparar dos arrays en PHP

Olorunfemi Akinlua 30 enero 2023
  1. Utilice los operadores == y != para comparar dos arrays en PHP
  2. Utilice los operadores === y !== para comparar dos arrays en PHP
  3. Use la función sort() para comparar dos arrays cuando el orden no es importante en PHP
  4. Utilice la función array_diff() para comparar dos arrays y devolver la diferencia en PHP
  5. Utilice la función array_intersect() para comparar dos arrays y devolver las coincidencias en PHP
Comparar dos arrays en PHP

Todo tipo de operaciones se realizan con arrays con diferentes complejidades, y las operaciones de comparación no son diferentes. Cuando comparamos dos valores, tenemos la intención de entender qué tan similares o diferentes son.

Con números (enteros y flotantes), caracteres y cadenas, puede ser sencillo. Sin embargo, con las arrays, puede volverse un poco complicado.

No te preocupes porque es fácil y hay diferentes operadores que podemos usar. Ya sea que la comparación sea estricta o no, hay un operador.

Este artículo considerará cuatro operadores y tres funciones que facilitan la comparación de dos arrays y cómo hacerlo con excelentes ejemplos.

Utilice los operadores == y != para comparar dos arrays en PHP

El primer operador es el operador ==. Es el operador de igualdad, y cuando comparamos dos arrays con este operador, pretendemos saber si el primer array es igual al segundo.

Las operaciones de comparación se enfocan en encontrar las similitudes o diferencias entre dos valores. Entonces, con el operador ==, obtienes una respuesta booleana, donde VERDADERO representa similitud y FALSO representa disimilitud.

Aquí, el código usa el operador == para comparar dos arrays.

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Check for equality
if ($arr1 == $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

Producción :

Not Similar Arrays

Puede utilizar el operador !=, un operador de desigualdad. Cuando comparamos dos arrays con este operador, pretendemos saber si el primer array no es igual al segundo array.

Libera una respuesta booleana, donde VERDADERO representa disimilitud y FALSO representa similitud.

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Check for inequality
if ($arr1 != $arr2)
    echo "Not Similar Arrays";
else
    echo "Similar Arrays";

?>

Producción :

Not Similar Arrays

Estos dos operadores trabajan con arrays asociativas y multidimensionales y solo compararán los valores, no las claves.

Utilice los operadores === y !== para comparar dos arrays en PHP

Similar a los operadores ==, el operador === permite comparar dos valores por similitud. Sin embargo, el operador == devolverá VERDADERO si la primera matriz y la segunda matriz, en el contexto de las arrays asociativas, tienen los mismos pares clave/valor.

Sin embargo, === devolverá VERDADERO si la primera matriz y la segunda matriz tienen los mismos pares clave/valor en el mismo orden y del mismo tipo.

Usando los mismos códigos en la sección anterior, haremos algunos cambios de tipo y usaremos los operadores == y ===.

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array('4', '5', 'hello', '2.45', '3.56');

// Check for equality
if ($arr1 == $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

Producción :

Similar Arrays

Cuando usamos el operador ===

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array('4', '5', 'hello', '2.45', '3.56');

// Check for equality
if ($arr1 === $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

Cuando lo usamos con arrays asociativos, vemos el mismo comportamiento. En el siguiente código, compararemos las dos arrays en términos de su valor y no de claves.

<?php

$arr1 = array("first" => 4, "second" => 5, "type" => 'hello');
$arr2 = array("one" => '4', "two" => '5', "third" => 'hello', );

// Check for equality
if ($arr1 === $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

Producción :

Not Similar Arrays

Use la función sort() para comparar dos arrays cuando el orden no es importante en PHP

Para los casos en los que el orden del elemento no es importante, puede usar la función sort() y comparar las dos arrays. Por lo tanto, aplica la función sort() a ambas arrays y luego compara las arrays ordenadas para la igualdad.

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Sort the array elements
sort($arr1);
sort($arr2);

// Check for equality
if ($arr1 == $arr2)
    echo "Both arrays are same, when sorted";
else
    echo "Both arrays are not same, even when sorted";

?>

Producción :

Both arrays are same, when sorted

Utilice la función array_diff() para comparar dos arrays y devolver la diferencia en PHP

Podemos comparar dos arrays y devolver la diferencia entre los dos arrays, y hacerlo, usamos la función array_diff(). Con esta función, podemos comparar dos arrays y esperar un array de retorno que contenga elementos en el primer array que no estén en el segundo.

<?php

$first = array("12", 34, true, 45, 67);
$second = array("12", 21, 89, 45);

print_r(array_diff($first, $second));

?>

Producción :

Array
(
    [1]    34
    [2]    1
    [4]    67
)
   true

Tienes que saber el orden en que colocas las arrays en los impactos de las funciones array_diff() que devuelven un array. Con el mismo código, si cambiamos el orden de las arrays, la salida a continuación es el resultado.

Array
(
    [1]    21
    [2]    89
)
   true

Y si no hay diferencia, el código devolverá un array vacío.

Utilice la función array_intersect() para comparar dos arrays y devolver las coincidencias en PHP

Con la función array_intersect(), puedes comparar dos arrays y devolver los elementos que están presentes en ambos elementos. Usando las mismas dos arrays en la sección anterior, encontrará 12 y 45 en el array de retorno.

<?php

$first = array("12", 34, true, 45, 67);
$second = array("12", 21, 89, 45);

print_r(array_intersect($first, $second));

?>

Producción :

Array
(
    [0]    12
    [3]    45
)
   true
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Artículo relacionado - PHP Array