Como eliminar elementos vazios ou nulos de um array em PHP



Neste tutorial vamos mostrar como eliminar elementos vazios ou nulos de um array em PHP. Para isso, utilizaremos a função nativa do PHP array_filter() para eliminar todos os elementos com valores considerados false, sendo eles:

  • O próprio boleano false;
  • Inteiros e floats com (zero) , sendo: 0 e -0, 0.0 e -0.0;
  • String vazia ou string zero, sendo "" ou "0";
  • Array vazio (sem elementos);
  • Tipo especial null (valor nulo);

Definições:

A função array_filter() filtra elementos de um array utilizando uma função callback. Entretanto, quando nenhum callback é fornecido, todas entradas de array iguais a false (veja convertendo para booleano) serão removidas (ver documento PHP).

Obs.: A função callback é uma função definida pelo programador para ser aplicada equitativamente em todos os elementos do array.

1. Eliminando elementos false de um array

1.1. Veja abaixo nosso array de exemplo. Observe que o array possui elementos nulos, vazios, false e zeros.

<?php
$exemplo = [
      0,
      "",
      "elemento a",
      0,
      "elemento b",
      null,
      "0",
      false,
      "elemento c",
      ''      
];

echo '<pre>';
print_r($exemplo);

 Observação:

1.1.1. A função print_r() exibe as chaves e os valores de um array. Veja o resultado do nosso exemplo:

1.2. Para eliminarmos os elementos nulos vamos utilizar a função nativa array_filter(), mas sem enviar a função callback. Veja a sintaxe abaixo:

$array = array_filter($array);

1.3. A seguir, aplicaremos a função array_filter() no nosso exemplo:

<?php
$exemplo = [
      0,
      "",
      "elemento a",
      0,
      "elemento b",
      null,
      "0",
      false,
      "elemento c",
      ''      
];

// remove os valores nulos
$exemploLimpo = array_filter($exemplo);

echo '<pre>';
print_r($exemploLimpo);

1.3.1. Observe que criamos o array $exemploLimpo isento de elementos nulos.

1.3.2. Observe que ao utilizarmos a função array_filter() as chaves do novo array não serão recriadas e os valores não nulos manterão suas chaves originais. Veja o resultado do nosso exemplo:

2. Recriar chaves numéricas em um array

2.1. Como vimos no exemplo anterior, os valores do novo array mantiveram suas chaves originais. Para recriarmos as chaves numéricas podemos utilizar a função array_values()  (ver documento PHP).

2.2. Veja o exemplo abaixo onde recriaremos as chaves do itens do array criado no exemplo anterior:

<?php
$exemplo = [
      0,
      "",
      "elemento a",
      0,
      "elemento b",
      null,
      "0",
      false,
      "elemento c",
      ''      
];

// remove os valores nulos
$exemploLimpo = array_filter($exemplo);

// recria as chaves numérica do array
$exemploLimpo = array_values($exemploLimpo);

echo '<pre>';
print_r($exemploLimpo);

laughing Veja o resultado do nosso exemplo:

Documentação Oficial

1. [Documentação PHP - array_filter()] » Sobre a função array_filter().

2. [Documentação PHP - array_values()] » Sobre a função array_values().

3. [Documentação PHP - print_r()] » Sobre a função print_r().

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO