2017-05-05 2 views
0

選択したオプションがすでにセッションに存在するかどうかを確認しようとしています。だから私は、セッション内のすべてのオプションをスローし、その上のif文を実行するforeachループを作成しました。私の問題は、セッションに存在するオプションがあるたびに、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

は、より多くの情報を提供してください役立つことを願って、あなたはループのすべての値をチェックすることができます使用「入れ子になったのforeach」をお勧めします、$ key変数は設定されていません。 – yazfield

答えて

1

は、私はこのコードが不完全であることが

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

     } 

    } 

} 
関連する問題