Muchas veces, mientras escribimos programas o desarrollamos, necesitamos filtrar arrays para eliminar duplicados. PHP nos proporciona una función incorporada para hacer esto, facilitándonos las cosas. array_unique() es una función integrada en PHP y esta función elimina los valores duplicados de una array. Si hay varios elementos en la array con los mismos valores, se mantendrá el primer elemento que aparezca y todas las demás apariciones de este elemento se eliminarán de la array.
Además, de acuerdo con esta función, dos elementos se consideran iguales si y solo si (string) $elem1 === (string) $elem2, es decir, cuando la representación de string de los elementos es la misma.
Sintaxis :
array array_unique($array , $sort_flags)
Nota : Las claves de la array se conservan. Es decir, las claves de los elementos no eliminados de la array de entrada serán las mismas en la array de salida.
Parámetros : Esta función acepta dos parámetros de los cuales uno es obligatorio y el otro es opcional. Ambos parámetros se describen a continuación:
- $array : este parámetro es obligatorio y especifica la array de entrada de la que queremos eliminar los duplicados.
- $sort_flags : este es un parámetro opcional. Este parámetro $sort_flags se puede usar para modificar el comportamiento de clasificación usando estos valores:
- SORT_REGULAR: Este es el valor predeterminado del parámetro $sort_flags. Este valor le dice a la función que compare elementos normalmente (no cambie los tipos).
- SORT_NUMERIC: este valor le dice a la función que compare elementos numéricamente.
- SORT_STRING: este valor le dice a la función que compare elementos como strings.
- SORT_LOCALE_STRING: este valor le dice a la función que compare elementos como strings, según la configuración regional actual.
Valor de retorno : la función array_unique() devuelve la array filtrada después de eliminar todos los duplicados de la array.
Los siguientes programas ilustran la función array_unique() en PHP:
Ejemplo-1 :
<?php // Input Array $a=array("red", "green", "red", "blue"); // Array after removing duplicates print_r(array_unique($a)); ?>
Producción:
Array ( [0] => red [1] => green [3] => blue )
Ejemplo-2 :
<?php // Input array $arr = array("a"=>"MH", "b"=>"JK", "c"=>"JK", "d"=>"OR"); // Array after removing duplicates print_r(array_unique($arr)); ?>
Producción:
Array ( [a] => MH [b] => JK [d] => OR )
Puntos importantes a tener en cuenta:
- array_unique() no está diseñado para funcionar en arrays multidimensionales.
- Las claves de la array de entrada se conservan.
- De acuerdo con esta función, dos elementos se consideran iguales si su representación de string es la misma.
Referencia :
http:http://php.net/manual/en/function.array-unique.phpp