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