проблема с массивом php? - PullRequest
0 голосов
/ 05 июля 2011

У меня есть следующий код:

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, иногда иногда добавляются дополнительные продукты, может кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 14 июля 2011

Я бы дважды проверил, что $_SESSION['basket'][$i][$product['productid']]['qty'] плюс $_POST['qty'] равно вашему желаемому значению для начинающих, проследите, убедитесь, что они целочисленные (если вы еще этого не сделали)

И попробуйте

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

вместо использования оператора +=. Это дало мне проблемы в прошлом.

Или ваш count($_SESSION['basket']) может равняться 2, для чего необходимо выполнить сложение дважды.

...