Neste artigo você aprenderá a remover elementos vazios de array, de uma maneira simples e rápida para aplicar em seus projetos de PHP!
Fala programador(a), beleza? Bora aprender mais sobre arrays em PHP!
Ao trabalhar com PHP, um dos desafios mais comuns que você pode enfrentar é manipular arrays.
Em muitos casos, pode ser necessário remover elementos vazios de um array.
Este artigo mostrará como fazê-lo de maneira eficaz.
Por que remover elementos vazios de um array?
Em primeiro lugar, vamos entender por que você pode precisar remover elementos vazios de um array.
Geralmente, arrays são usados para armazenar uma coleção de valores.
No entanto, se houver elementos vazios em um array, eles podem afetar as operações que você realiza nele.
Por exemplo, se você estiver usando um loop para iterar sobre o array, os elementos vazios podem distorcer os resultados.
Além disso, eles também podem afetar as funções que dependem do comprimento do array.
Utilizando a função array_filter()
A maneira mais comum de remover elementos vazios de um array em PHP é usando a função array_filter()
.
Esta função percorre cada valor em um array e verifica se ele é verdadeiro. Se for falso (o que inclui elementos vazios), ele será removido.
Aqui está um exemplo:
$array = array("foo", "", "bar", " ", null, FALSE, 0); $result = array_filter($array); print_r($result);
Na saída, você verá que todos os elementos vazios, incluindo a string vazia, a string de espaço, o valor nulo, o valor falso e o zero, foram removidos.
Cuidado com o array_filter()
No entanto, é importante observar que a função array_filter()
considera o valor zero (0) e o booleano FALSE como vazios.
Então, se esses valores são significativos em seu array, você pode querer escrever uma função personalizada para verificar se um elemento está vazio.
$array = array("foo", "", "bar", " ", null, FALSE, 0); $result = array_filter($array, function($value) { return ($value !== null && $value !== false && $value !== '' && $value !== ' '); }); print_r($result);
Neste exemplo, a função personalizada exclui os valores nulos, falsos e as strings vazias ou com espaços, mas mantém os zeros.
Trabalhando com arrays multidimensionais
Se você estiver trabalhando com arrays multidimensionais, as coisas podem ficar um pouco mais complicadas.
A função array_filter()
não funcionará diretamente, mas você pode usá-la em conjunto com a função array_map()
.
$array = array( array("foo", "", "bar"), array("", " ", null, FALSE, 0), array("baz", null, FALSE, 0) ); $result = array_map('array_filter', $array); print_r($result);
Neste exemplo, a função array_map()
é usada para aplicar a função array_filter()
a cada sub-array no array principal.
Considerações sobre performance
Ao lidar com arrays pequenos, a performance raramente é uma preocupação.
Entretanto, quando trabalhamos com arrays grandes ou operações que são repetidas diversas vezes, a eficiência do código se torna crucial.
A função array_filter()
não é a mais eficiente para arrays muito grandes, pois ela percorre cada elemento do array.
Se a performance for uma preocupação, você pode considerar usar um loop simples para percorrer o array e remover elementos vazios.
Removendo elementos vazios em um array associativo
As funções array_filter()
e array_map()
também funcionam em arrays associativos, onde cada valor tem uma chave específica, em vez de um índice numérico.
$array = array( "nome" => "João", "idade" => "", "profissão" => "programador", "cidade" => null ); $result = array_filter($array); print_r($result);
Neste exemplo, a função array_filter()
removeu os elementos vazios, resultando em um array apenas com os valores ‘nome’ e ‘profissão’.
Alternativas à função array_filter()
A função array_filter()
é muito útil e fácil de usar, mas existem outras formas de alcançar o mesmo resultado. Uma dessas formas é utilizando a combinação de um loop e a função unset().
Este método pode ser mais eficiente em termos de performance, principalmente em arrays grandes.
$array = array("foo", "", "bar", " ", null, FALSE, 0); foreach($array as $key => $value) { if(empty($value)) { unset($array[$key]); } } print_r($array);
Quer aprender mais sobre programação? Conheça nosso canal no YouTube:
Conclusão
Trabalhar com arrays é uma parte crucial do PHP, e entender como manipulá-los efetivamente pode ajudar você a escrever códigos mais eficientes e organizados.
Seja usando array_filter()
, array_map()
, ou loops simples, a remoção de elementos vazios é uma habilidade importante a se dominar. E
speramos que este artigo tenha lhe dado as ferramentas necessárias para manipular arrays de maneira mais eficaz em seu código PHP.
Está buscando em evoluir como Programador? Confira o nossos cursos de programação.