当某个产品的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
)
)
但是再次添加产品后,数量没有增加。我究竟做错了什么?我可以在“网络”标签中看到所有数据均已正确发布,并且没有错误。
答案 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();
}