兩種去除方法:1、使用array_filter()函數,可以過濾陣列,刪除空值元素,語法「array_filter($arr)」。2、利用foreach語句迴圈遍歷關聯陣列,在迴圈體中利用empty()判斷空值元素,並用unset()函數根據鍵名刪除該元素,語法「foreach($arr as $k=>$v){if(empty($v)){unset($arr[$k]);}}」。
php入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
方法1:使用array_filter()函數過濾陣列,刪除值為空的元素
array_filter()函數,也稱為回撥函數,是用於使用使用者定義的函數來過濾陣列的元素。它迭代陣列中的每個值,將它們傳遞給使用者定義的函數或回撥函數。
當使用array_filter()函數來宣告回撥函數時,它會刪除false值(空值),但是,如果未指定回撥函數,則將刪除陣列中值等於FALSE的所有元素,例如空字串或NULL值。
實現程式碼
function f($arr){
$newarr = array_filter($arr);
echo "過濾後的陣列:";
var_dump($newarr);
}
登入後複製
呼叫f($arr)函數
$arr = array(11,'',null,12,false,0);
var_dump($arr);
f($arr);
登入後複製
方法2:foreach語句+empty()函數+unset()函數
利用foreach語句迴圈遍歷陣列
在迴圈體中,利用empty()一個個判斷陣列元素是否為空值,利用unset()函數根據鍵名刪除空值
實現程式碼:
<?php
header("Content-type:text/html;charset=utf-8");
function f($arr){
foreach ($arr as $k=>$v){
if(empty($v)){
unset($arr[$k]);
}
}
echo "過濾後的陣列:";
var_dump($arr);
}
$arr = array(11,'1','',' ','0','0.0',0.0,null,12,false,0);
var_dump($arr);
f($arr);
?>
登入後複製
函數說明:
empty()
函數用於檢查一個變數是否為空。
empty() 判斷一個變數是否被認為是空的。當一個變數並不存在,或者它的值等同於 FALSE,那麼它會被認為不存在。如果變數不存在的話,empty()並不會產生警告。
以下值會被empty() 認為是空的:
"" (空字串)
0 (作為整數的0)
0.0 (作為浮點數的0)
"0" (作為字串的0)
NULL
FALSE
array() (一個空陣列)
$var; (一個宣告了,但是沒有值的變數)
unset()
函數用於銷燬給定的變數。
推薦學習:《》
以上就是php怎去掉值為空的陣列元素的詳細內容,更多請關注TW511.COM其它相關文章!