Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcio de Moraes

Eliminar elementos repetidos de um array..

Recommended Posts

Fala pessoal! Estou precisando de uma ajuda de vocês!. Esses dias eu estava precisando desenvolver algo que retirasse elementos repetidos de um array, por exemplo :

 

se eu tivesse uma variável :

 

$cores[5];

 

onde :

 

$cores[0] = "Azul";

$cores[1] = "Verde";

$cores[2] = "Amarelo";

$cores[3] = "Azul";

$cores[4] = "Amarelo";

 

então, eu queria retornar a variável $cores , somente com os itens que não são repetidos :

 

$cores[0] = "Azul";

$cores[1] = "Verde";

$cores[2] = "Amarelo";

$cores[3] = "";

$cores[4] = "";

 

 

Eu encontrei no manual do php na net.. um código bem simples que funcionou e resolveu meu problema porém fiquei sem entender nada... não sou muito experiente e por isso gostaria que vocês me ajudassem a entender o que eu fiz, e saber se vou ter algum problema. Segue o código que utilizei abaixo :

 

***************

 

$array[0] = "000";

$array[1] = "0101010";

$array[2] = "222";

$array[3] = "000";

$array[4] = "222";

 

$array = array_keys(array_flip($array)); //esta parte que eu não entendi! :unsure:

 

//exibe os elementos que não são repetidos da variável $array. Os repetidos, foram excluidos.

 

echo $array[0]."<br>";

echo $array[1]."<br>";

echo $array[2]."<br>";

echo $array[3]."<br>";

echo $array[4]."<br>";

 

*****************

 

Neste caso, será exibido na tela :

 

000

0101010

222

 

Obrigado!!!

 

Márcio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, olha só, analisando as funções:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/pt_BR/function.array-keys.php

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/pt_BR/function.array-flip.php

 

Então, vamos pela lógica. O que isso está fazendo?

 

1) Lembrando que sempre os parênteses internos são os primeiros a serem executados, temos a inversão dos valores com as chaves (com a função array_flip).

 

2) Ele pega as chaves do array. Como não podem existir chaves iguais (oras, se os valores que estavam iguais passaram a ser chaves, logo, somente um "sobreviverá"), então ele exibe apenas uma vez...

 

Certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, olha só, analisando as funções:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/pt_BR/function.array-keys.php

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/pt_BR/function.array-flip.php

 

Então, vamos pela lógica. O que isso está fazendo?

 

1) Lembrando que sempre os parênteses internos são os primeiros a serem executados, temos a inversão dos valores com as chaves (com a função array_flip).

 

2) Ele pega as chaves do array. Como não podem existir chaves iguais (oras, se os valores que estavam iguais passaram a ser chaves, logo, somente um "sobreviverá"), então ele exibe apenas uma vez...

 

Certo?

 

Entendi!!! ele primeiro faz a inversão com array_flip e depois a função array_keys, não permite exibir elementos repetidos, por isso que exibe somente os elementos diferentes.

 

Cara, muito obrigado pela ajuda!

 

Com este método para eliminar elementos repetidos de um array, você acha que eu terei algum tipo de problema??

 

obrigado de novo!

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.