我一直在摸不着头脑,试图解决这个问题。
我有一个类似......的数组
$param = array(
"conditionType" => $_GET['conditionType'] ? strtolower($_GET['conditionType']) : "all",
"minPrice" => $_GET['minPrice'] ? $_GET['minPrice'] : false,
"maxPrice" => $_GET['maxPrice'] ? $_GET['maxPrice'] : false,
);
我需要检查以确保返回的所有图书都是> =最低价格和< =最高价格,但如果这些用户选择不指定最低价格或最高价格,则if语句需要忽略此项目检查。
if(($param['conditionType'] == "all"
|| ($param['conditionType'] == "new" && strtolower($book['sub_condition']) == "new")
|| ($param['conditionType'] == "used" && strtolower($book['sub_condition']) != "new"))
&& ($param['minPrice'] && $book['price'] >= $param['minPrice'])
&& ($param['maxPrice'] && $book['price'] <= $param['maxPrice'])
&& $book['price'] != "null"
){
$books[] = array(
"link" => $book['link'],
"listing_condition" => $book['sub_condition'],
"listing_price" => $book['price']
);
}
我可以在if语句中更改哪些内容以确保发生这种情况?
答案 0 :(得分:1)
您需要重新构建类似
的部分&& ($param['minPrice'] && $book['price'] >= $param['minPrice'])
改为阅读
&& (!$param['minPrice'] || $book['price'] >= $param['minPrice'])
这符合您陈述的逻辑:不应设置最低价格,或者必须小于或等于账面价格。
答案 1 :(得分:0)
您只需将此$param['minPrice']
否定为!$param['minPrice']