php数组购物车问题?

php数组购物车问题?,php,arrays,shopping-cart,Php,Arrays,Shopping Cart,我有以下代码: 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

我有以下代码:

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,有时还会添加额外的产品。有人能帮我吗?

我会再次检查$\u SESSION['basket'][$I][$product['productid']['qty']加上$\u POST['qty']是否等于您想要的初始值,重复一下,如果还没有,请确保它们是INT

试一试

$_SESSION['basket'][$i][$product['productid']]['qty'] = $_SESSION['basket'][$i][$product['productid']]['qty'] + $_POST['qty'];
而不是使用+=运算符。过去它给了我很多问题


或者您的count$\u会话['basket']可能等于2,因此需要运行两次加法。

我建议您在执行操作时,为更短、更具描述性的变量名分配巨大的变量名值。这将使这一切变得容易得多。例如$prodID=&$_会话['basket'][$i][$product['productid']]。现在,您可以在$prodID上执行所有操作了。嗨,Codemonkey,我完全同意您的看法,我是在解决了问题后才这样做的。Thanks@Dino你已经发布了15个问题。您应该学习如何正确格式化代码块,这样其他人就不必一直为您修复它们。永远不要使用标签或标签。选择代码并单击工具栏上的{}按钮,或手动将每行缩进4个空格。要以内联方式编写代码,如下图所示,请将文本包装为“backticks”。请