在使用 PHP 語言進行陣列操作的過程中,有時候我們需要對陣列進行去掉 null 值的操作。因為 null 值會對某些陣列操作產生影響,而有些情況下我們又不希望 null 值對陣列操作造成負面影響,所以去掉 null 值就變得非常必要了。那麼接下來,我們就來看看如何在 PHP 中去掉陣列中的 null 值。
一、使用 array_filter() 函數
要從陣列中過濾掉 null 值,首先想到的肯定就是使用 PHP 的 array_filter() 函數。此函數將會傳回一個新的數組,該數組不包含在處理原始數組時回調函數傳回 false 的元素。在這裡,我們可以使用 PHP 內建的 is_null() 函數來做判斷,將值為 null 的元素篩選掉。
具體的實作方式如下:
$arr = array('aa', 0, null, '', false, true, null, 'bb'); $filteredArray = array_filter($arr, function($item) { return !is_null($item); });
這樣操作後,$filteredArray 中就只包含非 null 值了。
二、使用 foreach 迴圈移除 null 值
另外,我們也可以使用 foreach 迴圈對陣列進行遍歷,將其中的 null 值移除。
可實現程式碼如下:
foreach ($arr as $key => $value) { if(is_null($value)){ unset($arr[$key]); } }
這樣便可以將原數組中的 null 值移除掉。當然,使用unset() 函數會導致陣列的鍵被重排,如果你希望鍵不被重排,也可以使用以下程式碼:
foreach ($arr as $key => $value) { if(is_null($value)){ array_splice($arr, $key, 1); } }
三、使用array_diff() 函數
############################################################################################################### #另一個比較簡單的方法,是使用array_diff() 函數,將原始數組和一個只有null 值的數組作差集,從而去除null 值。 ######可實現程式碼如下:###$arr = array('aa', 0, null, '', false, true, null, 'bb'); $filteredArray = array_diff($arr, array(null));###這樣操作後,$filteredArray 中就只包含非 null 值了。 ######總結######在實際開發中,需要根據情況靈活選擇適合自己的方法。使用 array_filter() 函數可以在一行程式碼內解決問題,但是如果陣列元素太多的話,會消耗一定的效能。從效能考慮的角度考慮,使用 foreach 迴圈或 array_diff() 函數的方法比較適合。 ###
以上是php怎麼去掉陣列的null值(三種方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!