使用in_array时如何将0与FALSE区分开来

时间:2014-07-02 02:48:44

标签: php

我有一个函数来过滤数组中不需要的值(通常是false和空值),它是:

function filter_array($arr ,  $filter = array('' , FALSE)){

    foreach($arr as $k=>$v)
    {
        if(in_array(trim($v) , $filter)) 
        unset($arr[$k]);
    }

    return $arr;
}

这是问题所在,它将0视为false并将其从数组中移除......我该如何解决这个问题?

一种方法是循环使用$filter并使用===检查值,但我想避免另一个循环

1 个答案:

答案 0 :(得分:1)

in_array采用第三个可选参数进行严格比较。

in_array(trim($v) , $filter, true)