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 条评论