【发布时间】:2011-07-05 17:00:26
【问题描述】:
我有以下代码:
if($_SESSION['basket']){
$i=0;
while($i < count($_SESSION['basket'])) {
if(is_array($_SESSION['basket'][$i][$product['productid']]) && $_SESSION['basket'][$i][$product['productid']]['material']==$_POST['material'] && $_SESSION['basket'][$i][$product['productid']]['size']==$_POST['size']){
$_SESSION['basket'][$i][$product['productid']]['qty']+=$_POST['qty'];
}else{
echo $i."-4";
$_SESSION['basket'][][$product['productid']] = array("qty"=>$_POST['qty'], "material"=>$_POST['material'],"size"=>$_POST['size']);
}
$i++;
}
}else{
$_SESSION['basket'][][$product['productid']] = array("qty"=>$_POST['qty'], "material"=>$_POST['material'],"size"=>$_POST['size']);
}
当我将商品添加到购物篮时,产品显示的数量为 2,而当我只添加 1 件时,有时还会添加额外的产品,有人可以帮我吗?
【问题讨论】:
-
我会敦促您在执行操作时将巨大的变量名称值分配给更短、更具描述性的变量名称。这将使这一切变得容易得多。例如
$prodID = &$_SESSION['basket'][$i][$product['productid']]。现在您可以改为在$prodID上执行所有操作。 -
嗨 Codemonkey,我完全同意你的看法,我打算在找出问题后这样做。谢谢
-
@Dino 你已经发布了 15 个问题。您应该学习如何正确格式化代码块,这样其他人就不必一直为您修复它们。永远不要使用
<code>或<pre>标签。选择您的代码并单击工具栏中的{ }按钮,或手动将每行缩进4 个空格。要编写code inline, like this,请将文本包装在`backticks`中。请read this.
标签: php arrays shopping-cart