(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — Elimina los valores duplicados de un array
array_unique() extrae del array
array los valores distintos,
y elimina todos los duplicados.
Tenga en cuenta que las claves se preservan. Si varios elementos comparados
son iguales bajo el flags dado, entonces la clave
y el valor del primer elemento igual serán conservados.
Nota:
Dos elementos se consideran iguales si y solo si
(string) $elem1 === (string) $elem2, es decir, cuando la representación en string es idéntica.
arrayEl array de entrada.
flags
El segundo parámetro opcional flags
puede ser utilizado para modificar el comportamiento de comparación
utilizando los siguientes valores:
Flag de tipo de comparación:
SORT_REGULAR - compara los elementos normalmente
(no modifica los tipos)
Nota:
Al combinar
SORT_REGULARcon arrays que mezclan strings numéricos y no numéricos, el algoritmo de ordenar y comparar podría no colocar los elementos iguales de forma adyacente, lo que puede dejar duplicados en el resultado. Se debe utilizarSORT_STRINGpara evitarlo.
SORT_NUMERIC - compara los elementos
numéricamente
SORT_STRING - compara los elementos como strings
SORT_LOCALE_STRING - compara los elementos como
strings, según la configuración local actual.
Devuelve el array filtrado.
| Versión | Descripción |
|---|---|
| 7.2.0 |
Si flags es SORT_STRING,
el array devuelto se construye añadiendo los elementos únicos a un
array nuevo; anteriormente, era una copia de array
de la que se eliminaban los elementos no únicos.
Ambos contienen los mismos elementos bajo las mismas claves, pero si el
elemento con la clave entera mayor está entre los eliminados, el índice
generado para un elemento añadido al array devuelto difiere del que
habría generado array.
|
Ejemplo #1 Ejemplo con array_unique()
<?php
$input = ["a" => "green", "red", "b" => "green", "blue", "red"];
$result = array_unique($input);
print_r($result);
?>El ejemplo anterior mostrará:
Array
(
[a] => green
[0] => red
[1] => blue
)
Ejemplo #2 Ejemplo con array_unique() y los tipos
<?php
$input = [4, "4", "3", 4, 3, "3"];
$result = array_unique($input);
var_dump($result);
?>El ejemplo anterior mostrará:
array(2) {
[0]=>
int(4)
[2]=>
string(1) "3"
}
Nota:
Tenga en cuenta que array_unique() no funciona con arrays multidimensionales.