0

私はこれを理解しようとしてしばらく頭を悩ませてきました。

私は次のような配列を持っています...

$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 ステートメントで何を変更できますか?

4

2 に答える 2

1

次のように読む部分を再構築する必要があります

&& ($param['minPrice'] && $book['price'] >= $param['minPrice']) 

代わりに次のように読む

&& (!$param['minPrice'] || $book['price'] >= $param['minPrice']) 

これは、指定されたロジックに従います。最小価格を設定しないか、本の価格以下にする必要があります。

于 2012-09-21T14:58:08.607 に答える
0

$param['minPrice']これを否定するだけでいい!$param['minPrice']

于 2012-09-21T15:00:39.963 に答える