在PHP中,可以使用array_filter()函數(shù)來(lái)刪除數(shù)組中的空值。array_filter()函數(shù)的功能是利用回調(diào)函數(shù)來(lái)對(duì)數(shù)組進(jìn)行過(guò)濾,如果沒(méi)有回調(diào)函數(shù),那么默認(rèn)就是刪除數(shù)組中值為false的元素。
array_filter() 函數(shù)用回調(diào)函數(shù)過(guò)濾數(shù)組中的元素。
該函數(shù)把輸入數(shù)組中的每個(gè)鍵值傳給回調(diào)函數(shù)。如果回調(diào)函數(shù)返回 true,則把輸入數(shù)組中的當(dāng)前鍵值返回給結(jié)果數(shù)組。數(shù)組鍵名保持不變。
array_filter()函數(shù)中如果沒(méi)有回調(diào)函數(shù),那么默認(rèn)就是刪除數(shù)組中值為false的元素。
語(yǔ)法
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
實(shí)例:
<?php $array = array('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>""); $b= array_filter($array); print_r($b); ?>
結(jié)果:
Array ( [a] => abc [b] => bcd [c] => cde [d] => def )
補(bǔ):
foreach或者while的,利用這兩個(gè)語(yǔ)法結(jié)構(gòu)來(lái)刪除數(shù)組中的空元素,簡(jiǎn)單代碼如下:
<?php foreach( $arr as $k=>$v){ if( !$v ) unset( $arr[$k] ); } >
而且自我感覺(jué)還挺不錯(cuò),只是這樣的效率并不高也曾經(jīng)試過(guò),先將$arr轉(zhuǎn)為對(duì)象,然后利用對(duì)象的特性來(lái)刪除,因?yàn)椋篺oreach是將當(dāng)前操作的數(shù)組進(jìn)行copy,每操作一下foreach,都是copy了一個(gè)變量,頁(yè)面里面如果有太多的foreach,會(huì)是一個(gè)很大的消耗。
相關(guān)教程推薦:《PHP教程》