php数组cart问题


php array cart problem?

我有以下代码:

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

我会仔细检查$_SESSION['basket'][$i][$product['productid']]['qty']$_POST['qty']是否等于你想要的启动器值,并将其回声出来,确保它们是int(如果你还没有(

尝试

$_SESSION['basket'][$i][$product['productid']]['qty'] = $_SESSION['basket'][$i][$product['productid']]['qty'] + $_POST['qty'];

而不是使用CCD_ 3运算符。它过去给我带来了问题。

或者您的count($_SESSION['basket'])可能等于2,因此运行两次加法。