标签:PHP
数据在用户层要做模糊化处理,数据范围连续,没有重合,想了一个解决方案,通过对范围的起始位置排序用二分查找获取模糊值区间;数据转换格式如下:
eg.1
50平以下(<50)
50-70平(>=50,<70)
70-90平(>=70,<90)
90-110平(>=90,<110)
110-130平(>=110,<130)
130-150平(>=130,<150)
150-200平(>=150,<200)
200平以上(>=200)
eg.2
一个月以内(0-30天)
两个月以内(31-60天)
三个月以内(61-90天)
半年以内(91-180天)
一年以内(181天-365天)
一年以上(365天以上)
demo:
class VlCode {
const CONSTRUCTION_AREA=[50,70,90,110,130,150,200];
const FINAL_PRICE=[100,150,200,250,300,400,500,800,1000];
const LOAN_AMOUNT=[30,50,100,150,200,250,300,400,500];
const LOAN_DATE=[30,31,60,61,90,91,180,181,365];
const LOAN_DATE_CEIL=[
‘-1‘=>"一个月以内",
‘1‘=>"两个月以内",
‘3‘=>"三个月以内",
‘5‘=>"半年以内",
‘7‘=>"一年以内",
‘9‘=>"一年以上"
];
/**
$arr = array(1, 3, 5, 7, 9, 11,13);
echo VlCode::getRanges($arr,8,‘平‘);
$date=‘2017-05-12‘;
$days=VlCode::getDays($date);
echo VlCode::getRanges(VlCode::LOAN_DATE,$days,‘date‘);
标签:PHP
原文地址:http://blog.51cto.com/daddysgirl/2110702