2017-06-01 12 views
1

[type] => mainが削除されている場合はメイン配列(注文)の設定を解除し、[type] => addonが削除されている場合はサブ配列のみを削除します。アドオンは、主製品が主製品とそのアドオン(メイン配列が削除されます)が削除され、顧客がアドオンを必要としない場合は、カートから取り除くことができます。サブ配列内の項目が削除された場合、メイン配列の設定を解除するにはどうすればよいですか?

[0] => Array (
    [0] => Array (
     [name] => Heart Choclates 
     [code] => LFB-P-10 
     [qty] => 1 
     [type] => main 
     [price] => 1200 
     [stock] => 1 
     [image] => choclates-valentines-day.jpg 
     [quantity] => 12 
     [expdate] => Jun 02nd 2017 
     [exptime] => 08:00 AM to 09:00 AM 
     [expdtype] => Fixed time delivery 
     ) 
    [1] => Array (
     [name] => Birthday Pink 
     [code] => KB-P-5 
     [qty] => 1 
     [type] => addon 
     [price] => 600 
     [stock] => 3 
     [image] => pink-roses.jpg 
     [expdate] => Jun 02nd 2017 
     [exptime] => 08:00 AM to 09:00 AM 
     [expdtype] => Fixed time delivery 
     ) 
    ) 
[1] => Array (
    [0] => Array (
     [name] => Red & Yellow Roses 
     [code] => KB-P-6 
     [qty] => 1 
     [type] => main 
     [price] => 800 
     [stock] => 8 
     [image] => birthday-red-roses.jpg 
     [expdate] => Jun 15th 2017 
     [exptime] => 08:00 AM to 12:00 PM 
     [expdtype] => Standard delivery 
     ) 
    [1] => Array (
     [name] => Truffle Cake 
     [code] => KB-P-8 
     [qty] => 1 
     [type] => addon 
     [price] => 10 
     [stock] => 3 
     [image] => truffle-cake.jpg 
     [expdate] => Jun 15th 2017 
     [exptime] => 08:00 AM to 12:00 PM 
     [expdtype] => Standard delivery 
     ) 
    ) 

これは私のコードの様子です。

if (isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"])) { 
     $product_code = $_GET["removep"]; //get the product code to remove 
     $product_type = $_GET["removet"]; //get the product type to remove 
     $return_url = base64_decode($_GET["return_url"]); //get return url 
     if (isset($_SESSION["grand_total"])) { 
      unset($_SESSION['grand_total']); 
     } 
     $array = $_SESSION["products"]; 
     print_r($array); 
     foreach($array as $key => $sub_array) { 
      foreach($sub_array as $innerRow => $cart_itm){ 
       if($cart_itm['type'] == $product_type && $cart_itm['code'] == $product_code) { 
        unset($array[$key]); 
        break; //if there will be only one then break out of loop 
       } 
      } 
     } 
    } 

私はこれを試してみましたが、それはあなたが$product_typemainaddonであるかどうかをチェックし、別の削除を行う必要があり、事前

答えて

0

でwork.Thanksませんでした。

foreach($array as $key => $sub_array) { 
    foreach($sub_array as $innerRow => $cart_itm){ 
     if($cart_itm['type'] == $product_type && $cart_itm['code'] == $product_code) { 
      if ($product_type == 'main') { 
       unset($array[$key]); 
       break; //if there will be only one then break out of loop 
      } elseif ($product_type == 'addon') { 
       unset($array[$key][$innerRow]); 
      } 
     } 
    } 
} 

DEMO

+0

私はそれが動作を示すデモを追加しました私はすでにこれを試してみましたが、その設定は解除 –

+0

を得ていません。 – Barmar

+0

はい、私はセッションに配列を保存していないので、間違いを働いた。 $ _SESSION ["products"] = $ array;このような。私のカートには反映されませんでした。たくさんありがとうございました –

関連する問題