HOWTO · PHP

Eliminar valores duplicados de un array en PHP

Este artículo introduce cómo eliminar los valores duplicados de un array en PHP. Incluye la función array_unique().

En esta página

Este artículo introducirá un método para eliminar valores duplicados de un array en PHP.

Utiliza la función array_unique() para eliminar valores duplicados de un array en PHP

Podemos usar la función array_unique() para eliminar los valores duplicados de un array. La función array_unique() es una función especializada para eliminar los valores duplicados de un array. La sintaxis correcta para usar esta función es la siguiente.

array_unique($array, $flags);

La función array_unique() tiene dos parámetros. Los detalles de sus parámetros son los siguientes.

Variables Descripción
$array Es el array de la que queremos eliminar los valores duplicados.
$flags Especifica el patrón de clasificación del conjunto. Las banderas de clasificación son de cinco tipos.
SORT_REGULAR compara los elementos normalmente
SORT_NUMERIC compara los elementos numéricamente
SORT_STRING compara los elementos como cadenas
SORT_LOCALE_STRING compara los elementos como cadenas, basado en la locale actual.

Esta función devuelve el array libre de valores duplicados. El programa a continuación muestra las formas en que podemos usar la función array_unique() para eliminar los valores duplicados de un array en PHP.

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy","Daffodil","Daisy","Lili","Jasmine","Jasmine");
echo("Array before removal: \n");
var_dump($array);
$array = array_unique($array);
echo("Array after removal: \n");
var_dump($array);
?>

Producción :

Array before removal: 
array(11) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
  [6]=>
  string(8) "Daffodil"
  [7]=>
  string(5) "Daisy"
  [8]=>
  string(4) "Lili"
  [9]=>
  string(7) "Jasmine"
  [10]=>
  string(7) "Jasmine"
}
Array after removal: 
array(6) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}

La función ha devuelto el array filtrada.

Ahora, si pasamos el parámetro $flags, la salida será cambiada.

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy","Daffodil","Daisy","Lili","Jasmine","Jasmine");
echo("Array before removal: \n");
var_dump($array);
$array = array_unique($array, SORT_NUMERIC);
echo("Array after removal: \n");
var_dump($array);
?>

Producción :

Array before removal: 
array(11) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
  [6]=>
  string(8) "Daffodil"
  [7]=>
  string(5) "Daisy"
  [8]=>
  string(4) "Lili"
  [9]=>
  string(7) "Jasmine"
  [10]=>
  string(7) "Jasmine"
}
Array after removal: 
array(1) {
  [0]=>
  string(4) "Rose"
}

La función ahora ha ordenado el array numéricamente.