【PHP】 解決array_filter會過濾0 false的問題


定義和用法

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")));
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM