php - 如何添加到数组中的值
问题描述
当产品的 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
)
)
但再次添加产品后,数量并没有增加。我究竟做错了什么?我可以在我的网络选项卡中看到所有数据都已正确发布并且没有错误。
解决方案
正如 devpro 已经说过的,您正在检查密钥“购物车”是否已设置
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();
}
推荐阅读
- python - 如何在 Windows 中运行使用 pip 安装的程序?
- python - 如何将 R conda env 连接到 jupyter notebook
- r - 循环遍历列以删除 NA
- ios - 将 Xcode 中的搜索限制为自上次提交以来更改的行
- python - How do you call a method both "inside" and "outside" an instance in python?
- mongodb - MongoDB:从字符串字段中删除第一个字符并更新该字段
- laravel - 服务器上的 Laravel 播种机
- express - Express 控制器不返回 cookie
- php - 如何检测 $POST 函数内容是否有空间然后转换为“_”以创建文件夹?
- xcode - Flipper + Flutter 错误:架构 arm64 的未定义符号