2014-03-05 122 views
0

這只是我得到的結果的圖片。正如你所看到的,物品4可以一次又一次地添加。我在購物車中需要的是,對於每種顏色,第4項只能添加一次。php購物車無法停止將相同的產品添加到購物車陣列

enter image description here

if(isset($_SESSION['cart'])){ 

    ################## Do looping to check array cart if already has item with same id and color ########################## 

    $i = 0; 
    $j = 1; // set to index [1] // 
    $found = ''; 

    foreach($_SESSION['cart'] as $cart){ 

     ######## Check if product chosen already exist in the cart ####### 

     if($cart[$i]['id'] == $new_product['id'] && $cart[$i]['color'] == $new_product['color']){ 

      $found = true; // Found existing item in the array cart // 

     } 
     else{ 
      $found = false; 
      $j++; // No item found in array cart, increase to index [2] // 
     } 

     ####### If no same item is found in cart, add the new product to the cart array ############### 



     $i++; // Increase array index to check second array and so on // 
    } 

    if(!$found){ // No item found in array cart, add item into cart // 

     $_SESSION['cart'][$j]['id'] = $new_product['id']; 
     $_SESSION['cart'][$j]['product_name'] = $new_product['product_name']; 
     $_SESSION['cart'][$j]['discount'] = $new_product['discount']; 
     $_SESSION['cart'][$j]['qty'] = $new_product['qty']; 
     $_SESSION['cart'][$j]['color'] = $new_product['color']; 
     $_SESSION['cart'][$j]['shipping_fee'] = $new_product['shipping_fee']; 

    } 

} 

else{ 

    $_SESSION['cart'][0]['id'] = $product['id']; 
    $_SESSION['cart'][0]['product_name'] = $product['product_name']; 
    $_SESSION['cart'][0]['discount'] = $product['discount']; 
    $_SESSION['cart'][0]['qty'] = $qty; 
    $_SESSION['cart'][0]['color'] = $color; 
    $_SESSION['cart'][0]['shipping_fee'] = $shipping_fee; 

} 

我怎麼能有我的代碼改變了嗎?

回答

0

試試這個...

if($found){ // item found in array cart 

    $_SESSION['cart'][0]['id'] = $product['id']; 
    $_SESSION['cart'][0]['product_name'] = $product['product_name']; 
    $_SESSION['cart'][0]['discount'] = $product['discount']; 
    $_SESSION['cart'][0]['qty'] = $qty; 
    $_SESSION['cart'][0]['color'] = $color; 
    $_SESSION['cart'][0]['shipping_fee'] = $shipping_fee; 

    } 

} 

else{ // no item found 

    $_SESSION['cart'][$j]['id'] = $new_product['id']; 
     $_SESSION['cart'][$j]['product_name'] = $new_product['product_name']; 
     $_SESSION['cart'][$j]['discount'] = $new_product['discount']; 
     $_SESSION['cart'][$j]['qty'] = $new_product['qty']; 
     $_SESSION['cart'][$j]['color'] = $new_product['color']; 
     $_SESSION['cart'][$j]['shipping_fee'] = $new_product['shipping_fee']; 

}