首頁 >後端開發 >PHP問題 >php 怎麼刪除陣列中的null值

php 怎麼刪除陣列中的null值

PHPz
PHPz原創
2023-04-19 10:04:33744瀏覽

PHP是一種廣泛應用的腳本語言,廣泛應用於Web開發領域。在開發中,經常需要操作數組,當遇到包含null值的數組時,可能需要將其刪除。本文將介紹如何使用PHP刪除陣列中的null值。

一、遍歷刪除

最簡單的方法是進行遍歷並刪除null值。首先我們建立一個包含null值的陣列。

$arr = array(1, 2, null, 4, null, 6);
print_r($arr);

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 
    [3] => 4
    [4] => 
    [5] => 6
)

我們可以透過foreach循環遍歷數組,並使用unset()刪除含有null值的元素。

foreach ($arr as $key => $value){
    if(is_null($value)){
        unset($arr[$key]);
    }
}
print_r($arr);

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [3] => 4
    [5] => 6
)

使用unset()函數可刪除陣列中的元素,is_null()函數用來判斷是否為null,即可快速刪除陣列中的null元素。

二、array_filter()函數

另一個方法是使用PHP內建函數array_filter()。此函數可接受一個數組,並傳回一個新數組,將原始數組中的值透過指定回調函數過濾後傳回新的數組。回呼函數回傳true則保留該元素,回傳false則刪除該元素。

因此,我們可以建立一個匿名函數來判斷元素是否為null,用array_filter()函數來篩選。

$arr = array(1, 2, null, 4, null, 6);
$new_arr = array_filter($arr, function($value){
    return $value !== null;
});
print_r($new_arr);

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [3] => 4
    [5] => 6
)

三、array_diff()函數

還可以使用array_diff()函數來數組差集操作,將null值的元素從原始數組中刪除。這個方法需要將原始數組與只包含null值的數組做差集操作,得到的結果就是不包含null值的新數組。

$arr = array(1, 2, null, 4, null, 6);
$null_arr = array(null);
$new_arr = array_diff($arr, $null_arr);
print_r($new_arr);

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [3] => 4
    [5] => 6
)

四、array_map()函數

最後,我們可以使用array_map()函數來過濾陣列 null值。此函數可接受一個數組,並傳回一個新數組,將原始數組中的值透過指定回呼函數處理後傳回新的數組。

使用array_map()函數可以將null值轉換為任意值,然後再過濾掉。這裡我們將null值轉換為空字串,再進行過濾。

$arr = array(1, 2, null, 4, null, 6);
$new_arr = array_map(function($value){
    return $value ?? '';
}, $arr);
print_r($new_arr);

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 
    [3] => 4
    [4] => 
    [5] => 6
)

使用??運算子可將null值轉換為空字串,然後使用array_filter()函數過濾,得到不包含null值的新陣列。

本文介紹了4種方法刪除PHP陣列中的null值,分別是遍歷刪除、array_filter()函數、array_diff()函數、array_map()函數。不同的方法適用於不同的場景,開發時可依實際情況選擇適合自己的方法。

以上是php 怎麼刪除陣列中的null值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn