定義和用法
array_filter() 函數用回調函數過濾數組中的元素。
該函數把輸入數組中的每個鍵值傳給回調函數。如果回調函數返回 true,則把輸入數組中的當前鍵值返回給結果數組。數組鍵名保持不變。
語法:
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
- array : 必需。規定要過濾的數組。
- callback : 可選。規定要用的回調函數
- flag 可選。決定 callback 接收的參數形式:
問題:
數據過濾空值時常會使用array_filter,但其默認會把0、false這樣具體的值過濾掉。
方法一: 直接使用:
function filtrfunction($arr){ if($arr === '' || $arr === null){ return false; } return true; } $data = array( 'a'=>1, 'b'=>0, 'c'=>'', 'd'=>null, 'e'=>5, 'f'=>false ); print_r(array_filter($data,'filtrfunction'));
方法二: 在類中使用:
function filtrfunction($arr){ if($arr === '' || $arr === null){ return false; } return true; } function test(){ $data = array( 'a'=>1, 'b'=>0, 'c'=>'', 'd'=>null, 'e'=>5, 'f'=>false ); print_r(array_filter($data,array($this,"filterSinaList"))); }