Comparar elementos de dos arrays en PHP usando array_intersect

En ocasiones necesitamos hacer comparaciones de dos arrays y saber los elementos coincidentes. La función array_intersect nos permite hacer esto de manera sencilla.

A manera de ejemplo vamos a imaginar que estamos desarrollando una aplicación de lista de compras y queremos saber que cosas de la lista de este mes las compramos también el mes pasado.

Vamos entonces a imaginar que es febrero y nuestra lista de compras de este mes es:

  • naranjas
  • manzanas
  • arroz
  • atún
  • jabón

Esto representado en un array en PHP quedaría así:

De la misma manera vamos a imaginar que la lista de compras de enero fue:

  • vino
  • sal
  • naranjas
  • azúcar
  • leche
  • arroz
  • tomates
  • jabón

El array en PHP sería:

Entonces lo que queremos saber es que cosas de nuestra lista de febrero hemos comprado en enero también. A simple vista podemos decir que tanto en enero como en febrero hemos comprado:

  • naranjas
  • arroz
  • jabón

Ahora bien, podríamos escribir una función o método que recorra los elementos del primer array, los vaya comparando con los elementos del segundo array y cuando encuentre coincidencias las guarde en un tercer array de resultados.

Pero tenemos otra forma mucho más fácil de hacer esto y que nos ahorrará unas cuantas líneas de código. Para esto usamos la función de PHP llamada array_intersect. Esta función permite hacer la comparación directamente y sin tantas complicaciones. La función recibe como parámetros los arrays que queremos comparar y nos devuelve un nuevo array con los elementos coincidentes. De manera que para comparar nuestras dos listas de compras solo tendríamos que hacer lo siguiente:

Y listo, tenemos nuestro array con los elementos coincidentes (naranjas, arroz, jabón) en el array $listaCoincidencias.

Cabe señalar que si queremos comparar mas de dos arrays usando la función array_intersect simplemente debemos pasar como parámetros adicionales los arrays a comparar. En este caso la comparación se hará tomando como referencia el array que pasemos como primer parámetro, es decir, que elementos del primer array se encuentran presentes en los demás arrays. Un ejemplo de esto sería:

 

2 thoughts on “Comparar elementos de dos arrays en PHP usando array_intersect

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *