兩種去除方法:1、利用foreach語句循環(huán)遍歷關(guān)聯(lián)數(shù)組,在循環(huán)體中利用unset()函數(shù)根據(jù)鍵名刪除空值元素即可,語法“foreach($arr as $k=>$v){if(!$v){unset($arr[$k]);}}”。2、使用array_filter()函數(shù)過濾關(guān)聯(lián)數(shù)組,刪除空值元素(數(shù)組中值等于FALSE的所有元素),語法“array_filter($arr)”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
php關(guān)聯(lián)數(shù)組中去掉空值的兩種方法
方法1:foreach語句+unset()函數(shù)
1、利用foreach語句循環(huán)遍歷關(guān)聯(lián)數(shù)組
foreach ($array as $key => $value){ 循環(huán)語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中會將當前數(shù)組的值賦給 $value,鍵名賦給 $key。
2、在循環(huán)體中,一個個判斷數(shù)組元素是否為空值,利用unset()函數(shù)根據(jù)鍵名刪除空值
if( !$value ){ unset( $arr[$key] ); }
完整代碼:
<?php header('content-type:text/html;charset=utf-8'); $arr=array(1=>"1","a"=>"",2=>"2","b"=>0,"c"=>"blue"); var_dump($arr); foreach ($arr as $k=>$v){ if( !$v ){ unset($arr[$k]); } } var_dump($arr); ?>
方法2:使用array_filter()函數(shù)過濾關(guān)聯(lián)數(shù)組,刪除空值元素
array_filter()函數(shù),也稱為回調(diào)函數(shù),是用于使用用戶定義的函數(shù)來過濾數(shù)組的元素。它迭代數(shù)組中的每個值,將它們傳遞給用戶定義的函數(shù)或回調(diào)函數(shù)。
當使用array_filter()函數(shù)來聲明回調(diào)函數(shù)時,它會刪除false值(空值),但是,如果未指定回調(diào)函數(shù),則將刪除數(shù)組中值等于FALSE的所有元素,例如空字符串或NULL值。
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(11,'',null,12,false,0); var_dump($arr); $newarr = array_filter($arr); echo "過濾后的數(shù)組:"; var_dump($newarr); ?>
推薦學(xué)習(xí):《PHP視頻教程》