我有2个功能。第一个是将商品添加到购物车,第二个是根据商品ID删除特定商品。
function AddToCart($pid) {
if (isset($_SESSION['products']['prod_count'])) {
$_SESSION['products']['prod_count'] ++;
$incart = $_SESSION['products']['prod_count'];
$_SESSION['products'][$incart]['product_id'] = $pid;
} else {
$_SESSION['products']['prod_count'] = 0;
$incart = $_SESSION['products']['prod_count'];
$_SESSION['products'][$incart]['product_id'] = $pid;
}
}
function DeleteProduct($pid) {
foreach ($_SESSION['products'] as $key => $my_value) {
foreach ($my_value as $key => $product_id) {
if ($product_id == $pid) {
// do not know how to unset this product
}
}
}
}
如果$ product_id == $ pid,我需要了解如何取消设置产品,或者可能是其他想法如何实现。
我的数组看起来像:
array(1) { ["products"]=> &array(4)
{ ["prod_count"]=> int(2)
[0]=> array(1) { ["product_id"]=> int(4)}
[1]=> array(1) { ["product_id"]=> int(10) }
[2]=> array(1) { ["product_id"]=> int(11) } } }
答案 0 :(得分:1)
以下代码只会解决您的问题:
function DeleteProduct($pid) {
foreach ($_SESSION['products'] as $key => $product) {
if ($pid === $product['product_id']) {
unset($_SESSION['products'][$key]);
}
}
}
但为了让你的工作在未来更容易,你也可以像这样构建你的数组:
$_SESSION['products'] = array(
'product_id' => 'amount',
);
要添加产品,您只需执行以下操作:
$_SESSION['products'][$product_id] += $amount;
要计算您可以使用的产品:
count($_SESSION['products']);
以下是您的功能可能是一个简单的示例:
function addProduct($pid, $value = 1) {
$_SESSION['products'][$pid] += $value;
}
function removeProduct($pid) {
unset($_SESSION['products'][$pid]);
}
function countProducts() {
return count($_SESSION['products']);
}
祝你好运!