Passei as últimas horas me divertindo com códigos PHP. Entre problemas e soluções, deu para aprender muita coisa nova, e me estressar muito com coisas pequenas que simplesmente insistiam em me fazer companhia! Entre as coisas novas que aprendi, estão a optimização de arrays em PHP. Eu precisava, por vários motivos, de remover todos os elementos duplicados de um array. O Problema: Como fazer isso? A solução: Este artigo!
Depois de uma pesquisa, descobri que PHP é uma linguagem preparada para tudo, e já possui uma função que remove dados duplicados de um array. A função é array_unique(). Veja como funciona, no exemplo abaixo:
<?php
$meu_array=array("a","b","c","a","a","d");
$novo_array=array_unique($meu_array);
print_r($meu_array);
print_r($novo_array);
?>
O resultado da execução deste script será:
Array (
[0] => a
[1] => b
[2] => c
[3] => a
[4] => a
[5] => d
)
Array (
[0] => a
[1] => b
[2] => c
[5] => d
)
Aqui, o $novo_array é composto pelos elementos de $meu_array, sem repetir elementos duplicados. Realmente simples!!Um detalhe, é que o array_unique() só funciona para arrays unidimensionais. Se quiser remover filas duplicadas de um array multidimensional, terá de fazer algumas acrobacias, mas não é tão impossível assim.
Outro detalhe que deve ter ficado claro aqui, é que o array_unique() conserva os índices dos elementos do array. Veja por exemplo, o valor “d”, estava na posição 5 no array original, e no novo array continua na posição 5, mesmo havendo espaços vazios nas posições anteriores.







Comentários Recentes