如何在 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