PHP 自定义数组过滤,或者自定义排序函数 怎么在自定义 function 传值?

查看:111
本文介绍了PHP 自定义数组过滤,或者自定义排序函数 怎么在自定义 function 传值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

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

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

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

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

解决方案

何不尝试自己封装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;
}

这篇关于PHP 自定义数组过滤,或者自定义排序函数 怎么在自定义 function 传值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆