PHP根据参数范围返回对应的配置参数

熊海
熊海

今天在写一个系统中,有一个特殊的需求,需要根据配置项数组的配置决定当前数值属于哪一档,当然可以用if else 等,但这个需要配置在数据库中,想了一下,新写了一个方法。

数组格式:

[{"data":20,"ratio":"0.20"},{"date":200,"ratio":"0.50"},{"date":2000,"ratio":"1.00"},{"date":10000,"ratio":"1.50"},{"date":20000,"ratio":"2.00"}]

先进行排序:

function GetSort($arr,$keys,$type='asc'){
    if(count($arr) <= 0 ) {
        return false;
    }
    
    $temp = $new_arr = array();
    foreach($arr as $key=>$val) {
        $temp[$key] = $val[$keys];
    }
    
    if($type == 'asc') {
        natsort($temp);
    }else{
        natsort($temp);// 自然排序法 排序 保持键名不变
        $temp = array_reverse($temp,true); // 为true时反转值 把最后一项放在前面 以此类推
    }
    foreach ($temp as $key=>$val) {
        $new_arr[$key] = $arr[$key];
    }
    
    return $new_arr;
}

完整代码:

/**
 * 根据数据获取系数
 * @param unknown $coeff
 * @return unknown|number
 */
function getCoeff($list,$coeff){
    $data=GetSort($data,'date','desc');
    foreach ($data as $i=>$value){
        if($coeff >= $data[$i]['date']){
            return $data[$i]['ratio'];
        }
    }
    return 0;
}
支付宝打赏支付宝 微信
微信扫一扫
0 条评论

评论:

发送