与PHP中的用户数据相比,根据范围获取数据

这是我的数据库表:


id      target_download     date

1       10                  2019-06-18

2       20                  2019-06-18

3       30                  2019-06-18

4       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){


    }

}


不负相思意
浏览 110回答 1
1回答

扬帆大鱼

尝试这个$data[]['target_download'] = 10;$data[]['target_download'] = 20;$data[]['target_download'] = 30;$data[]['target_download'] = 40;$user_download = 15;foreach($data as $key => $val) {&nbsp; &nbsp;if($user_download >= $val['target_download'] && $user_download < $data[++$key]['target_download']) {&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; //Do your stuff&nbsp; &nbsp; echo "Range is ".$val['target_download'];&nbsp; }}我假设您将使用数字数组从数据库获取数据。编辑 其他解决方案&nbsp; &nbsp; $arr = array(10, 20, 30, 40);&nbsp; &nbsp; function getClosest($search, $arr) {&nbsp; &nbsp; &nbsp; &nbsp;$a = null;&nbsp; &nbsp; &nbsp; &nbsp;foreach ($arr as $i) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a = $search >= $i ? $i : $a;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;return $a===null ? 0:$a;&nbsp; &nbsp; }&nbsp; &nbsp; echo $v = getClosest(15, $arr);
打开App,查看更多内容
随时随地看视频慕课网APP