2017-05-05 93 views
0

我試圖查看選中的選項是否已存在於會話中。所以我創建了一個foreach循環來拋出會話中的所有選項並對其執行if語句。我的問題是if語句1/5對我來說隨機失敗,當它每次有會話中存在的選項時都會通過。該請求始終是正確的,因爲它來自DOM。所以,問題在於我的foreach循環檢查購物車中是否存在選項php

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

請提供更多信息,這個代碼是不完整,$ key變量未設置。 – yazfield

回答

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]); 

     } 

    } 

} 
相關問題