在PHP中,陣列是一種非常常用的資料結構,在許多程式設計場景中我們經常需要使用到陣列。那麼在處理數組時,經常需要考慮到數組是否為空以及如何取得數組的長度。
PHP提供了許多函數來處理數組,例如判斷數組是否為空的函數empty(),判斷數組元素是否存在的函數isset(),取得數組長度的函數count()等等。本文將重點放在如何取得數組不為空的長度。
當我們使用count()函數來取得陣列長度時,如果陣列為空,將會傳回0。但是在某些場景中,需要取得數組不為空的長度,那該怎麼辦呢?
常見的方法是使用迴圈來遍歷數組,統計其中不為空的元素個數。具體實作方式如下所示:
function countNotNull($arr){ if(!is_array($arr)) return 0; $count = 0; foreach($arr as $item){ if(!empty($item)){ $count++; } } return $count; } $arr = array(1, null, 3, "", 5, array()); echo countNotNull($arr); // output: 3
以上程式碼首先判斷陣列是否為空以及是否為陣列類型,防止傳入非法參數導致的錯誤。接著經過遍歷每一個元素,統計其中不為空的元素個數。最後傳回該值。
這種方法雖然比較簡單,但是在陣列元素比較多時,效率較低。另外,在多次使用該函數時,可能會帶來一些重複的工作。
一種更有效率的方案是使用array_filter()函數來過濾掉空元素,再使用count()函數來取得陣列的長度。具體實作方式如下所示:
function countNotNull2($arr){ if(!is_array($arr)) return 0; $newArr = array_filter($arr); return count($newArr); } $arr = array(1, null, 3, "", 5, array()); echo countNotNull2($arr); // output: 3
以上程式碼先進行了參數的合法性判斷,然後使用array_filter()函數過濾掉空元素,並傳回一個新的陣列。再使用count()函數取得該新數組的長度,即為數組不為空的長度。
要注意的是,使用array_filter()函數過濾掉的是空元素(如0、「」、null、false等),而不是只過濾空字串。
總之,在PHP中,取得陣列不為空的長度確實有多種方法,以上介紹的只是常見的幾種。讀者可以根據實際需求來選擇適當的方法。
以上是php怎麼取得數組不為空的長度的詳細內容。更多資訊請關注PHP中文網其他相關文章!