(PHP 4 >= 4.0.1, PHP 5, PHP 7)
array_unique — Elimina valores duplicados de un array
$array
[, int $sort_flags
= SORT_STRING
] ) : array
Toma un array
y devuelve un nuevo array
sin valores duplicados.
Tenga en cuenta que las claves se conservan. Si múltiples elementos se comparan
bajo el parámetro sort_flags
, entonces la clave y el valor del primer
elemento igual se conservarán.
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.
array
El array de entrada.
sort_flags
El segundo parámetro opcional sort_flags
se 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.
Devuelve el array filtrado.
Versión | Descripción |
---|---|
7.2.0 |
Si el parámetro sort_flags es SORT_STRING ,
el array anterior ha sido copiado y se han eliminado
los elementos no únicos (sin empaquetar el array posteriormente), pero
ahora se construye un nuevo array añadiendo los elementos únicos. Esto puede
dar lugar a diferentes índices numéricos.
|
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.
|
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" }
Nota: Observe que array_unique() no está pensado para que trabaje con arrays multidimensionales.