如何增加数组中的值

时间:2019-02-04 15:41:09

标签: php arrays

当某个产品的ID已经存在于数组中时,我正在尝试增加该产品的数量。

我的产品数组$arr2例如:

Array
(
    [productid] => 3
    [productname] => Eikenhout pallet
    [productalias] => eikenhout-pallet
    [productcat] => Eikenhout
    [catalias] => eikenhout
    [quantity] => 1
    [kuubkosten] => 150|1 kuub
)

然后我创建一个会话并将所有信息添加到其中。

if (!isset($_SESSION['cart'])) {
     // and turn session into array
   $_SESSION['producten'] = array();
}

// If id of product does not exist, add it to session
if(!isset($_SESSION['producten'][$arr2['productid']])){
    $_SESSION['producten'][$arr2['productid']] = $arr2;
// Else add to quantity
}else{
    $_SESSION['producten'][$arr2['productid']]['quantity'] += $arr2['quantity'];
}

如果我随后打印我的会话,这就是我得到的:

Array
(
    [3] => Array
        (
            [productid] => 3
            [productname] => Eikenhout pallet
            [productalias] => eikenhout-pallet
            [productcat] => Eikenhout
            [catalias] => eikenhout
            [quantity] => 1
            [kuubkosten] => 150|1 kuub
        )

)

但是再次添加产品后,数量没有增加。我究竟做错了什么?我可以在“网络”标签中看到所有数据均已正确发布,并且没有错误。

1 个答案:

答案 0 :(得分:1)

正如devpro所说, 您正在检查键“ cart”是否已设置

if (!isset($_SESSION['cart'])) {

但是您永远不会设置该变量。您的代码可能仅在您更改时起作用

if (!isset($_SESSION['cart'])) {
    // and turn session into array
    $_SESSION['producten'] = array();
}

if (!isset($_SESSION['producten'])) {
    // and turn session into array
    $_SESSION['producten'] = array();
}