Mediante un código muy sencillo vamos a poder eliminar elementos duplicados de un array en PHP. Vamos a ver que la utilización de dos funciones nos pueden resolver este engorroso problema. Para que al final los valores que aparezcan en el array sean únicos.
Lo primero vamos a ver como sería un array con elementos duplicados:
$lista = array(1,1,2,3,4,4,4,5,6,7,7,8,9,10,10);
Ahora, sobre este array vamos a aplicar la función array_unique()
. Esta función elimina los elementos duplicados que existan en el array. En este momento podemos pensar… «pues era extremadamente fácil»… pero, por desgracia, no es así. array_unique()
elimina los elementos duplicados, si bien no reasigna los índices del array y nos dejaría índices vacíos. Estos serían los índices en los que estaban los elementos duplicados.
Una vez ejecutada la función array_unique()
sobre el array que teníamos definido inicialmente, tendríamos la siguiente estructura:
$lista[0] -> 1 $lista[1] -> '' $lista[2] -> 2 $lista[3] -> 3 $lista[4] -> 4 $lista[5] -> ''
El contenido del array lo podemos ver utilizando la función print_r()
que nos mostrará la información mostrada antes.
En esta situación lo que necesitamos es apoyarnos en una segunda función llamada array_values()
. Esta función retorna todos los valores del array y los re-indexa. De esta manera ya tenemos eliminados los índices vacíos.
Así el código que nos permite eliminar elementos duplicados de un array en PHP será el siguiente:
$lista_simple = array_values(array_unique($lista));
Vemos que ambas funciones devuelven un array, es por ello que hay que asignarlo a un nuevo array.
Bueno, parece que al final eliminar elementos duplicados de un array en PHP si que era sencillo. :-D