array_unique
(PHP 4 >= 4.0.1, PHP 5)
array_unique — Elimina valores duplicados de un array
Descripción
$array
[, int $sort_flags = SORT_STRING
] )
Toma un array y devuelve un nuevo array
sin valores duplicados.
Nótese que se conservan las claves. array_unique() ordena
los valores tratándolos como cadenas, manteniendo la primera clave encontrada
por cada valor e ignorando las demás claves. Esto no significa
que será mantenida la clave relacionada con el primer valor encontrado del
array no ordenado.
Nota: Dos elementos son considerados iguales solo si (string) $elem1 === (string) $elem2, es decir, cuando la representación en formato de string sea la misma, se usará el primer elemento.
Parámetros
-
array -
El array de entrada.
-
sort_flags -
El segundo parámetro opcional
sort_flagsse puede utilizar para modificar el tipo de orden usando estos valores:Indicadores de tipos de orden:
-
SORT_REGULAR- compara ítems normalmente (no cambia los tipos) -
SORT_NUMERIC- compara ítems numéricamente -
SORT_STRING- compara ítems como strings -
SORT_LOCALE_STRING- compara ítems como strings, basados en la configuración regional en uso.
-
Valores devueltos
Devuelve el array filtrado.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.2.10 |
Se volvió a cambiar el valor predeterminado de sort_flags a
SORT_STRING.
|
| 5.2.9 |
Se añadió el parámetro opcional sort_flags con el
valor predeterminado SORT_REGULAR. Antes de 5.2.9, esta función se usaba para ordenar
el array con SORT_STRING internamente.
|
Ejemplos
Ejemplo #1 Ejemplo de array_unique()
<?php
$entrada = array("a" => "verde", "rojo", "b" => "verde", "azul", "rojo");
$resultado = array_unique($entrada);
print_r($resultado);
?>
El resultado del ejemplo sería:
Array
(
[a] => verde
[0] => rojo
[1] => azul
)
Ejemplo #2 array_unique() y tipos
<?php
$entrada = array(4, "4", "3", 4, 3, "3");
$resultado = array_unique($entrada);
var_dump($resultado);
?>
El resultado del ejemplo sería:
array(2) {
[0] => int(4)
[2] => string(1) "3"
}
Notas
Nota: Observe que array_unique() no está pensado para que trabaje con arrays multidimensionales.