【问题标题】:check if option exists in the cart already php检查购物车中是否已经存在选项 php
【发布时间】:2017-05-05 00:49:28
【问题描述】:

我正在尝试查看所选选项是否已存在于会话中。所以我创建了一个 foreach 循环来抛出会话中的所有选项并对其执行 if 语句。我的问题是 if 语句 1/5 对我来说随机失败,因为每次会话中存在选项时它都应该通过。请求总是正确的,因为它来自 DOM。所以问题出在我的 foreach 循环中

PHP

foreach(Session::get('cartitems') as $items => $value) {
    if(isset($value['options']) && $value['options'] == implode('', $request->options)) {
        Session::forget('cartitems.'.$key);
    }
}

我的对象会话对象看起来像这样

{  
   "3":{  
      "product_id":"1",
      "qty":2,
      "options":"5"
   },
   "4":{  
      "product_id":"1",
      "qty":2,
      "options":"1"
   },
   "5":{  
      "product_id":"1",
      "qty":3,
      "options":"3"
   },
   "6":{  
      "product_id":"1",
      "qty":3,
      "options":"1"
   }
}

任何帮助将不胜感激。

【问题讨论】:

  • 请提供更多信息 此代码不完整,$key 变量未设置。

标签: php laravel loops session foreach


【解决方案1】:

如果你想检查选项中已经激活的会话,我建议使用“嵌套foreach”然后你可以循环所有值来检查,希望它可以帮助

foreach(Session::get('cartitems') as cartitem_key => $cartitem_row) { //session array

   foreach($request->options as option_key => option_row){ //option array

      if($cartime_row['options'] == option_row['options']){

         Session::forget('cartitems[$cartitem_key]);

      }

   }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多