我有以下功能将产品添加到购物车:
function AddToCart($pid)
{
$_SESSION['products'][]['product_id'] = $pid;
}
将产品数量存储到具有产品ID的同一数组的最佳方法是什么,因为['products']后面的数组自动生成我很困惑如何在那里分配数量?谢谢你的帮助:)
答案 0 :(得分:0)
为什么不同时存储您需要的所有信息?以下是我自己购物车的摘录:
// add item to cart
$_SESSION['cart'][] = array('product_id' => $product_id,
'cat_id' => $cat_id,
'title' => $title,
'default_img' => $default_img,
'price' => $valid_product['base_price'],
'weight' => $valid_product['weight'],
'length' => $valid_product['length'],
'width' => $valid_product['width'],
'height' => $valid_product['height'],
'surcharge' => $surcharge,
'quantity' => $quantity,
'prop_selection' => $prop_selection,
'po_id' => $po_id,
'stock' => $stock,
'shipper_id' => $valid_product['shipper_id']);
答案 1 :(得分:0)
如果我理解正确的问题,当为数组中已有的$ pid调用AddToCart()时,您是否只是希望它为该产品增加数量属性?在我看来,您需要使用$_SESSION['products']
的关联数组,而不是像现在这样使用数字索引数组:
function AddToCart($pid, $quantity=1) {
if(is_array($_SESSION['products']) && array_key_exists($pid, $_SESSION['products'])) {
$_SESSION['products'][$pid]['quantity'] += $quantity;
} else {
$_SESSION['products'][$pid] = array(
'product_id' => $pid,
'quantity' => $quantity
);
}
}