我想使用foreach循环来遍历购物车中的所有产品,如果它存在并且用户再次将其添加到购物车,它应该将该项目的总数增加1但我不知道如何实现这一点。我想要发生的是,如果用户点击"添加到购物车"在商品上,它会被添加到购物车中,数量为1.如果他们点击了"添加到购物车"对于同一项目,它应该更改为该项目的数量2。
$product_id = $_POST['id'];
if (!isset($_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array(
"item_id" => $product_id,
"quantity" => 1
);
}
else {
if (in_array($product_id, $_SESSION['cart_array'])) {
// add 1 to items already in cart
$_SESSION['cart_array'] = $product_id . " " . "Item exists, add 1";
}
else {
array_push($_SESSION['cart_array'], array(
"item_id" => $product_id,
"quantity" => 1
));
}
}
我已更新此问题:
我设法让它只增加数组中的第一项,但需要它对购物车中的每个项目都做同样的事情:
if(!isset($_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array("item_id" => $product_id, "quantity" => 1);
} else {
if(in_array($product_id, $_SESSION['cart_array'])) {
$_SESSION['cart_array']= array("item_id" => $product_id, "quantity" => $_SESSION['cart_array']['quantity'] + 1);
} else {
array_push($_SESSION['cart_array'], array("item_id" => $product_id, "quantity" => 1));
}
}
答案 0 :(得分:1)
为什么不使用关联数组?
<?php
$productID = $_POST['id'];
session_start();
if (!isset($_SESSION['cart_array']))
{
$_SESSION['cart_array'] = [];
}
if (!isset($_SESSION['cart_array'][$productID]))
{
$_SESSION['cart_array'][$productID] = [
"quantity" => 0
];
}
$_SESSION['cart_array'][$productID]['quantity']++;
答案 1 :(得分:-1)
$product_id = $_POST['id'];
if (!isset($_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array(
"item_id" => $product_id,
"quantity" => 1
);
}
else {
if (in_array($product_id, $_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array(
"item_id" => $product_id,
"quantity" => $_SESSION['cart_array']["quantity"]++
);
}
}