$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(); 檢測變量是否為空