¿Cómo puedo eliminar valores duplicados de una matriz en PHP?
155
¿Cómo puedo eliminar valores duplicados de una matriz en PHP?
Use array_unique () .
Ejemplo:
$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
Note that array_unique() is not intended to work on multi dimensional arrays.
$array = array_unique($array, SORT_REGULAR);
Utilizar
array_values(array_unique($array));
array_unique
: para una matriz únicaarray_values
: para reindexarfuente
array_unique
devuelve un objeto con pares de clave y valor Yarray_values
devuelve solo valores como una matriz.fuente
Lo único que funcionó para mí es:
Editar:
SORT_REGULAR
mantiene el mismo orden de la matriz original.fuente
fuente
a veces
array_unique()
no es el camino, si quieres obtener elementos únicos Y duplicados ...resultados en
fuente
Podemos crear ese tipo de matriz para usar este último valor se actualizará en columna o valor clave y obtendremos un valor único de la matriz ...
fuente
explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));
Esto se encargará de las asociaciones de claves y serializará las claves para la nueva matriz resultante :-)
fuente
explode("," $YOUR_ARRAY)
cuándo$YOUR_ARRAY
esarray("1", "2", "3")
?Dependiendo del tamaño de su matriz, he encontrado
puede ser más rápido que array_unique.
fuente
Esa es una excelente manera de hacerlo. Es posible que desee asegurarse de que su salida vuelva a ser una matriz. Ahora solo está mostrando el último valor único.
Prueba esto:
fuente
verifique el valor por primera vez en la matriz y encontró el mismo valor, ignórelo
fuente
Eliminar valores duplicados de una matriz asociativa en PHP.
Matriz ([0] => aaa-aaa [1] => 12/1/1 [2] => 1.15)
fuente
Puede haber varias formas de hacer esto, que son las siguientes
fuente
Si le preocupa el rendimiento y tiene una matriz simple, use:
Es muchas veces más rápido que array_unique.
fuente
fuente
fuente
fuente
prueba este breve y dulce código -
Salida -
fuente
if
.fuente
Aquí he creado una segunda matriz vacía y he usado un
for
bucle con la primera matriz que tiene duplicados. Se ejecutará tantas veces como el recuento de la primera matriz. Luego, se compara con la posición de la matriz con la primera matriz y coincide que ya tiene este elemento o no mediante el usoin_array
. De lo contrario, agregará ese elemento a la segunda matriz conarray_push
.fuente
foreach
bucle?foreach
porque me siento muy cómodo con for loop. Eso es.Se puede hacer a través de la función que hice tres funciones duplicadas devuelve los valores que están duplicados en la matriz.
La segunda función solo devuelve solo aquellos valores que son una sola media no repetida en la matriz y la tercera función completa devuelve todos los valores pero no se duplican si algún valor está duplicado, lo convierte a simple;
fuente
ref: Demo
fuente
Una alternativa para la función array_unique ().
Usando el algoritmo de fuerza bruta
fuente
He hecho esto sin usar ninguna función.
fuente