Cómo quitar elementos de array vacíos en PHP

  1. Usando la función array_filter() para eliminar los elementos de array vacíos en PHP
  2. Usando la función array_diff() para eliminar los elementos de array vacíos en PHP
  3. Usando la función unset() para eliminar los elementos de array vacíos en PHP

En este artículo, presentaremos métodos para eliminar los elementos de array vacíos en PHP.

  • Usando la función array_filter()
  • Usando la función array_diff()
  • Uso de la función unset()

Usando la función array_filter() para eliminar los elementos de array vacíos en PHP

La función incorporada array_filter() elimina todos los elementos vacíos, ceros, valores falsos y nulos de un array. Esta función utiliza una función de devolución de llamada para filtrar los valores de el array. Si no se especifica una función de devolución de llamada, elimina los elementos vacíos, ceros, valores false y null.

La sintaxis correcta para usar esta función es la siguiente

array_filter($arrayName, $callbackFunction, $callbackParameter)

Aquí el $arrayName es el único parámetro obligatorio. El parámetro $callbackFunction es la función de devolución de llamada especificada para la operación en el array. El parámetro $callbackParameter informa sobre los parámetros pasados ​​a la función de devolución de llamada.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                0,
                "Hibiscus",
                "",
                "Tulip",
                null,
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_filter($flowers);
echo "The array is:\n";
print_r($flowers);
?>

No hemos especificado ninguna función de devolución de llamada, por lo tanto, el array devuelta no tiene elementos vacíos, ceros y valores nulos.

Producción:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [6] => Tulip
    [8] => Sun Flower
    [10] => Daffodil
    [11] => Daisy
)

Usando la función array_diff() para eliminar los elementos de array vacíos en PHP

La función incorporada array_diff() se usa para encontrar la diferencia entre dos o más arrays. Se puede usar para eliminar elementos vacíos de un array. No vuelve a indexar el array. La sintaxis correcta para usar esta función es la siguiente.

array_diff($array1, $array2, $array3, ... , $arrayN);

Toma N número de los parámetros (matrices). Compara la primera array con todas las demás matrices. Devuelve un array que contiene todos los elementos de la primera array que no están presentes en otras matrices.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                0,
                "Hibiscus",
                "",
                "Tulip",
                null,
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("",0,null));
echo "The array is:\n";
print_r($flowers);
?>

Aquí, hemos comparado nuestra array con un array que contiene la cadena vacía, 0 y el valor nulo. Entonces el array devuelta no tiene elementos vacíos.

Producción:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [6] => Tulip
    [8] => Sun Flower
    [10] => Daffodil
    [11] => Daisy
)

Usando la función unset() para eliminar los elementos de array vacíos en PHP

La función unset() elimina el valor almacenado en una variable. Podemos usarlo para eliminar los elementos vacíos de un array. La sintaxis correcta para usar esta función es la siguiente.

unset($variableName);

Solo acepta un parámetro $variableName. El $variableName es una variable de la que queremos eliminar el valor.

<?php
//Declare the array
$flowers = array("Rose","Lili","","Jasmine","Hibiscus","Tulip","Sun Flower","","Daffodil","Daisy");
foreach($flowers as $key => $link) 
{ 
    if($link === '') 
    { 
        unset($flowers[$key]); 
    } 
} 
echo "The array is:\n";
print_r($flowers);
?>

Aquí, hemos usado un bucle foreach para encontrar los elementos de array vacíos. Si un elemento de array está vacío, su índice junto con el nombre de el array se pasa como un parámetro a la función unset().

Producción:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [5] => Tulip
    [6] => Sun Flower
    [8] => Daffodil
    [9] => Daisy
)

Artículo relacionado - PHP Array

  • Ordenar matriz multidimensional en PHP
  • Cómo ordenar un array de matrices asociativas por el valor de una clave dada en PHP