php怎麼取得數組不為空的長度

PHPz
發布: 2023-04-26 09:27:53
原創
399 人瀏覽過

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!