我正在尝试查看所选的选项是否已存在于会话中。所以我创建了一个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"
}
}
任何帮助将不胜感激。
答案 0 :(得分: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]);
}
}
}