今天,我正在爲用戶網站腳本開發購物車。當他們將商品添加到購物車時,它將存儲在名爲cartitems
的$_SESSION
變量中。我將陣列存儲在$_SESSION['cartitems']
的數組中,其中包含項目的itemid
以及它們試圖添加到購物車的物品的數量。使用下面列出的代碼簡單地添加項目非常棒,但我需要他們增加數組中項目的值,假設他們嘗試添加更多相同的項目,而不是簡單地將新數組添加到SESSION中。這裏有一個例子:將項目添加到數組中,但是如果它們存在於數組中,則增加該值
-> User 1 visits the website.
- Add 5 melons to cart.
- Add 3 lemons to cart.
- Add 2 more melons to cart.
我的陣列將打印出類似這樣:
array(
array{0 => 1, 1 => 5},
array{0 => 2, 1 => 3},
array{0 => 1, 1 => 2}
)
..同時加入他們會是這樣,而不是像下面這樣的目標:
array(
array{0 => 1, 1 => 7},
array{0 => 2, 1 => 3}
)
使itemid爲1的值將增加到7.我還需要知道它在添加額外2之前的內容,因此庫存中只有6個瓜。不希望有人找到添加更多瓜的方法,那麼我們現在就留在股票領域!
我已經通過了股票領域的數量,隨着天氣它有無限的股票支持,或購買限制在一個項目,所以我有我需要的所有信息限制的東西(我已經做了添加項目時) ,只需要一種方法來改變數組,如果它已經在那裏增加數量就是全部。下面是我用它來添加項目代碼:
if(isset($_POST['quantity'])) {
// Cast quantity to an int for protection
$quantity = (int) $_POST['quantity'];
if(!empty($quantity) && $quantity > 0) {
$errors = 0;
// It doesn't support unlimited stock so we check stock level
if($unlimstock == "0") {
if($quantity > $stock) {
$quantity = $stock;
}
if($buylimit > 0) {
if($quantity > $buylimit) {
$errors = "1";
}
}
}
if($errors == 0) {
$_SESSION['cartitems'][] = array($itemid, $quantity);
header("Location: cart.php");
die();
}
}
}
什麼是檢查它是否在數組中,如果是保值增值的最佳方法,如果不是像我已經我可以添加它,如果它是什麼價值,所以我知道它可以通過增加多少。多謝你們!
非常好的建議!我會試試這個,謝謝。 – Kaboom
如果遇到困難,我爲您當前的$ _SESSION添加了代碼。所以你可以比較哪一個更簡單) –
第二個選項更好用,因爲它更容易用當前結構實現,而且我不一定知道會話中的所有項目,所以需要更多的寫作才能做出第一個選項工作,但第二個選項很好地工作。只需要添加我的支票現在是否超過股票限額。 – Kaboom