PHP 自定义数组过滤,或者自定义排序函数 怎么在自定义 function 传值?
伊谢尔伦
伊谢尔伦 2017-04-10 17:34:39
0
4
964

比如 uasort($arr ,"myRegExp") 和 array_filter($arr,"myGt")

我要是想对 myRegExp 或者 myGt 传值的时候怎么弄?

比如这个 myGt 是个小于 88的函数:

function myGt($val)
{
    if ($val >= 88)
        return true;
} 

能不能把这个88也写到 array_filter 的参数里?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(4)
Ty80

何不尝试自己封装array_filter

function user_array_filter($array = array(), $callback = null) {
    $args = func_get_args();
    if( count($args) < 2 ) {
        exit('Missing arguments for user_array_filter, two arguments at least');
    }
    if( count($args) == 2 ) {
        foreach( $array as $k => $v ) {
            $result = $callback($v);
            if( !$result ) {
                return false;
            }
        }
    } else {
        $limit = $args[2];
        foreach( $array as $k => $v ) {
            $result = $callback($v, $limit);
            if( !$result ) {
                return false;
            }
        }
    }
    return true;
}

function myGt($val, $limit = 88){
    if ($val >= $limit)
        return true;
    return false;
}
大家讲道理

自己写一个函数


function filter_by_value ($array, $min) 
{ 
    if(is_array($array) && count($array)>0)  
    { 
        foreach($array as $key => $value) 
        { 
            if($value > $min)
            {
                $newarray[$key] = $value;  
            }
        } 
    } 
      return $newarray; 
} 
    
$arr = [10,78,91,101,410,7,36];
print_r(filter_by_value($arr,88));
PHPzhong

你看下函数手册
http://php.net/manual/zh/func...

迷茫

自定义数组过滤

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板