Remover valores duplicados de um Array em PHP

Minahil Noor 6 fevereiro 2021
Remover valores duplicados de um Array em PHP

Este artigo irá introduzir um método para remover valores duplicados de um array em PHP.

Utilize a função array_unique() para remover valores duplicados de um array em PHP

Podemos utilizar a função array_unique() para remover valores duplicados de um array. A função array_unique() é uma função especializada para remover os valores duplicados de um array. A sintaxe correcta para utilizar esta função é a seguinte.

array_unique($array, $flags);

A função array_unique() tem dois parâmetros. Os detalhes dos seus parâmetros são os seguintes.

Variáveis Descrição
$array É a matriz da qual queremos remover os valores duplicados.
$flags Especifica o padrão de ordenação do array. As bandeiras de triagem são de cinco tipos.
SORT_REGULAR compara itens normalmente
SORT_NUMERIC compara itens numericamente
SORT_STRING compara itens como strings
SORT_LOCALE_STRING compara itens como strings, com base no local actual.

Esta função devolve o array livre de valores duplicados. O programa abaixo mostra as formas pelas quais podemos utilizar a função array_unique() para remover valores duplicados de um array em 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);
?>

Resultado:

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"
}

A função retornou um array filtrada.

Agora, se passarmos o parâmetro $flags, a saída será alterada.

<?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);
?>

Resultado:

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"
}

A função ordenou agora o array numericamente.

Artigo relacionado - PHP Array