$filter = $data['filter'];//客户端传过来的字段值 类型字符串,例如:1,2,3
$arrayFilter = explode(',',$filter); //把字符串转化为数组
$auction = []; //定义一个数组,因为后面1,2的类型是一个字段条件查询
foreach($arrayFilter as $k=>$v){ //不管是哪一种组合都进相对于的条件
if($v ==1){$auction[$k] = 1;}
elseif($v ==2){$auction[$k] = 0;}
elseif($v ==3){$where['over_time'] = ['lt',date('Y-m-d H:i:s',time())];} //对时间条件查询
else{}
}
if(!empty($auction)){ //非空判断
$where['is_auction'] = ['in',implode(',',$auction)]; //给不同类型数据库不同字段进行条件处理
}
思路:
把字符串转换成数组,再进行遍历,判断出对应的类型并在处理类型对应的判断,对同种类型用一个变量接收再进行处理
用到过的函数
explode(); 将字符串转换数组
implode(); 将数组分解成字符串
empty(); 检测变量是否为空