在PHP開發中,經常需要對數組進行操作,其中去掉數組中的空值是非常常見的操作之一。最常見的情況是從表單中取得資料時,有些資料可能會被使用者留空,但是在後續處理中,這些空值會影響到程式的正常運作。因此,我們需要去掉這些空值。
本文將介紹幾種PHP去掉數組空值的方法。
方法一:使用array_filter()函數
array_filter()是PHP內建的函數,可以過濾陣列中的元素。我們可以傳遞一個回呼函數作為參數,回呼函數傳回一個布林值,為true時該元素被保留,為false時該元素被刪除。如果沒有傳遞回呼函數,則刪除數組中所有的空值、0、false和null。
範例程式碼如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); $arr = array_filter($arr, 'strlen'); print_r($arr);
輸出結果如下:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述程式碼中,我們使用了strlen函數作為回呼函數,它傳回一個字串的長度,如果字串的長度為0,則為false。因此,所有長度不為0的元素都被保留下來。
方法二:使用foreach循環
另一種常見的去掉數組空值的方法是使用foreach循環遍歷數組,刪除空值。範例程式碼如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); foreach($arr as $key => $value) { if(empty($value)) { unset($arr[$key]); } } print_r($arr);
輸出結果與方法一相同:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述程式碼中,我們使用了empty()函數判斷元素是否為空,如果為空則使用unset( )函數刪除該元素。
方法三:使用array_diff()函數
還有一個使用array_diff()函數去掉陣列中空值的方法。 array_diff()函數是PHP內建函數,用來計算陣列的差集。當我們把一個數組的空值當作「差集」與另一個空數組計算時,就可以得到去掉空值後的原數組。
範例程式碼如下:
$arr = array('a', '', 'b', null, 'c', ' ', 'd', false); $arr = array_diff($arr, array('')); print_r($arr);
輸出結果與上述兩種方法相同:
Array ( [0] => a [2] => b [4] => c [6] => d )
在上述程式碼中,我們使用了一個空數組作為參數,這個空數組沒有元素,因此它的差集合就是原始數組去掉空值後的結果。
總結
本文介紹了三種PHP去掉數組空值的方法:使用array_filter()函數、使用foreach循環、使用array_diff()函數。這些方法都可以有效地去除數組中的空值,使程式更加穩定。在實際開發中,我們可以根據特定的需求選擇適合自己的方法。
以上是php怎麼去掉數組空值的詳細內容。更多資訊請關注PHP中文網其他相關文章!