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