这是我的数据库表:id target_download date1 10 2019-06-182 20 2019-06-183 30 2019-06-184 40 2019-06-18 如果假设用户下载 = 15,它将在10 到 19 范围内计数并获得第一行 id = 1如果假设用户下载 = 25,它将在20 到 29 范围内计数并获得第二行 id = 2所以根据用户下载和范围获取数据。我想你明白我的问题。我试试这个:$=i;foreach ($datas as $key=>$val){ if($datas[$i]['targer_download'] >= $user_download && $datas[$i+1]['targer_download'] < $user_download){ }}
1 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
尝试这个
$data[]['target_download'] = 10;
$data[]['target_download'] = 20;
$data[]['target_download'] = 30;
$data[]['target_download'] = 40;
$user_download = 15;
foreach($data as $key => $val) {
if($user_download >= $val['target_download'] && $user_download < $data[++$key]['target_download']) {
//Do your stuff
echo "Range is ".$val['target_download'];
}
}
我假设您将使用数字数组从数据库获取数据。
编辑 其他解决方案
$arr = array(10, 20, 30, 40);
function getClosest($search, $arr) {
$a = null;
foreach ($arr as $i) {
$a = $search >= $i ? $i : $a;
}
return $a===null ? 0:$a;
}
echo $v = getClosest(15, $arr);
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消