(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — Elimina valores duplicados de un 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éricamenteSORT_STRING
- compara ítems como stringsSORT_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.