Como posso remover valores duplicados de uma matriz no PHP?
php
arrays
duplicate-data
Ian
fonte
fonte
Note that array_unique() is not intended to work on multi dimensional arrays.
$array = array_unique($array, SORT_REGULAR);
Usar
array_values(array_unique($array));
array_unique
: para matriz únicaarray_values
: para reindexarfonte
array_unique
retorna um objeto com pares de chave e valor Earray_values
retorna apenas valores como uma matriz.fonte
A única coisa que funcionou para mim é:
Editar:
SORT_REGULAR
mantém a mesma ordem da matriz original.fonte
fonte
às vezes
array_unique()
não é o caminho, se você deseja obter itens únicos E duplicados ...resultados em
fonte
Podemos criar esse tipo de matriz para usar esse último valor, que será atualizado para o valor da coluna ou da chave e obteremos um valor exclusivo da matriz ...
fonte
explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));
Isso cuidará das associações de chaves e serializará as chaves para a nova matriz resultante :-)
fonte
explode("," $YOUR_ARRAY)
quando$YOUR_ARRAY
éarray("1", "2", "3")
?Dependendo do tamanho da sua matriz, eu encontrei
pode ser mais rápido que array_unique.
fonte
Essa é uma ótima maneira de fazer isso. Pode querer garantir que sua saída retorne novamente a uma matriz. Agora você está apenas mostrando o último valor exclusivo.
Tente o seguinte:
fonte
verificar pela primeira vez o valor na matriz e encontrou o mesmo valor, ignore-o
fonte
Remova valores duplicados de uma matriz associativa no PHP.
Matriz ([0] => aaa-aaa [1] => 1/12/1 [2] => 1,15)
fonte
Pode haver várias maneiras de fazer isso, que são as seguintes
fonte
Se você se preocupa com desempenho e possui uma matriz simples, use:
É muitas vezes mais rápido que o array_unique.
fonte
fonte
fonte
fonte
tente este código curto e agradável -
Resultado -
fonte
if
.fonte
Aqui eu criei uma segunda matriz vazia e usei o
for
loop com a primeira matriz que está tendo duplicatas. Ele será executado quantas vezes a contagem da primeira matriz. Em seguida, comparado com a posição da matriz com a primeira matriz e correspondendo ao fato de ele já possuir ou não esse item usandoin_array
. Caso contrário, ele adicionará esse item à segunda matriz comarray_push
.fonte
foreach
loop?foreach
porque estou muito confortável com o loop for. É isso aí.Isso pode ser feito através da função que eu fiz três funções duplicadas retorna os valores que são duplicados na matriz.
A segunda função única retorna apenas os valores que são únicos médios não repetidos na matriz e a terceira e a função completa retornam todos os valores, mas não duplicados, se qualquer valor for duplicado;
fonte
ref: Demo
fonte
Uma alternativa para a função array_unique () ..
Usando o algoritmo de força bruta
fonte
Eu fiz isso sem usar nenhuma função.
fonte