如何在 PHP 中删除空数组元素

Minahil Noor 2023年1月30日
  1. 使用 array_filter() 函数删除 PHP 中的空数组元素
  2. 使用 array_diff() 函数删除 PHP 中的空数组元素
  3. 使用 unset() 函数删除 PHP 中的空数组元素
如何在 PHP 中删除空数组元素

在本文中,我们将介绍一些方法来删除 PHP 中的空数组元素。

  • 使用 array_filter() 函数
  • 使用 array_diff() 函数
  • 使用 unset() 函数

使用 array_filter() 函数删除 PHP 中的空数组元素

内置函数 array_filter() 删除了数组中的所有空元素,比如:0falsenull 值。此函数使用回调函数来过滤数组值。如果未指定回调函数,它将删除空元素,0falsenull 值。

使用此函数的正确语法如下

array_filter($arrayName, $callbackFunction, $callbackParameter)

这里的 $arrayName 是唯一的必需参数。参数 $callbackFunction 是为数组上的操作指定的回调函数。参数 $callbackParameter 告诉传递给回调函数的参数。

<?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);
?>

我们没有指定任何回调函数,因此返回的数组没有空元素,零和空值。

输出:

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

使用 array_diff() 函数删除 PHP 中的空数组元素

内置函数 array_diff() 用于查找两个或多个数组之间的差异。它可以用来从数组中删除空元素。它不会重新索引数组。使用此函数的正确语法如下

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

它需要 N 个参数(数组)。它将第一个数组与所有其他数组进行比较。它返回一个数组,其中包含第一个数组中所有其他数组中不存在的元素。

<?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);
?>

在这里,我们将数组 array 与包含空字符串,0 和 null 值的数组进行了比较。所以返回的数组没有空元素。

输出:

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

使用 unset() 函数删除 PHP 中的空数组元素

unset() 函数删除存储在变量中的值。我们可以使用它来移除数组中的空元素。使用此函数的正确语法如下

unset($variableName);

它只接受一个参数 $variableName$variableName 是我们要删除其值的变量。

<?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);
?>

在这里,我们使用了一个 foreach 循环来查找空数组元素。如果数组元素为空,则将其索引以及数组名称作为参数传递给 unset() 函数。

输出:

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

相关文章 - PHP Array