偵測步驟:1、利用array_filter()函數過濾數組,去掉空值元素,語法“array_filter(原始數組)”,會傳回一個過濾數組;2、利用count()函數取得原始數組和過濾數組的長度,語法“count(原數組)”和“count(過濾數組)”;3、判斷原始數組長度是否等於過濾數組長度,語法“原始數組長度==過濾數組長度”,如果等於則數組中沒有空值,如果不等於則數組中有空值。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在php中,可以利用array_filter()、 count()函數和「==」運算子來偵測數組中是否有空值。
實作步驟:
步驟1:利用array_filter()函數過濾數組,移除空值元素
array_filter() 函數用回呼函數過濾陣列中的元素。
此函數把輸入陣列中的每個鍵值傳給回呼函數。如果回呼函數傳回 true,則把輸入數組中的目前鍵值傳回給結果陣列。數組鍵名保持不變。
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
參數 | 描述 |
---|---|
#array | 必要。規定要過濾的陣列。 |
callback | 可選。規定要用的回呼函數。 |
#flag | 可選。決定callback 接收的參數形式:
|
如果沒有回呼函數,那麼預設就是刪除數組中值為false(空值)的項目,會傳回一個包含全部true元素的過濾數組。
<?php header('content-type:text/html;charset=utf-8'); $arr=array('foo',false,-1,null,''); var_dump($arr); $filte=array_filter($arr); echo "过滤数组后:"; var_dump($filte); ?>
步驟2:利用count()函數取得原始數組和過濾數組的長度
count() 函數可以傳回數組中元素的數目,即數組的長度。
$len1=count($arr); $len2=count($filte);
步驟3:判斷原數組長度是否等於過濾數組長度
$len1==$len2;
如果等於,則數組中沒有空值(即沒有過濾元素)
如果不等於,則數組中有空值(即有過濾掉了一些元素)
實現程式碼:
function f($arr){ $filte=array_filter($arr); echo "过滤数组后:"; var_dump($filte); $len1=count($arr); $len2=count($filte); if($len1==$len2){ echo "数组中没有空值<br>"; }else{ echo "数组中有空值<br>"; } }
範例1:呼叫f($arr)函數
$arr=array('foo',false,-1,null,''); var_dump($arr); f($arr);
範例2:
$arr=array('foo',1,2,3); var_dump($arr); f($arr);
【相關推薦:javascript影片教學、web前端入門】
以上是php怎麼檢測數組中是否有空值的詳細內容。更多資訊請關注PHP中文網其他相關文章!