You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何修改SESSION购物车数组内的quantity字段值

解决方法

你已经匹配到了对应商品的数组键$key,直接按多维数组的层级赋值即可完成更新,修改后的代码如下:

if (isset($_POST['action']) && $_POST['action']=="change"){
    // 可先做参数合法性校验,避免非法值写入
    $pid = intval($_POST["pid"]);
    $new_quantity = intval($_POST['quantity']);
    if($new_quantity < 1) {
        // 数量不能小于1,可根据业务需求补充异常提示逻辑
        echo "商品数量不能小于1";
        return;
    }
    foreach($_SESSION["shopping_cart"] as $key => $value) {
        if('product-'.$pid == $key){
            echo "found";
            // 直接通过键层级赋值更新quantity字段
            $_SESSION["shopping_cart"][$key]["quantity"] = $new_quantity;
            break;
        }
    }   
}

如果想用引用方式简化写法也可以,注意foreach结束后必须unset引用变量,避免后续操作数组时出现异常:

foreach($_SESSION["shopping_cart"] as $key => &$value) {
    if('product-'.$pid == $key){
        $value["quantity"] = $new_quantity;
        break;
    }
}
unset($value); // 必须加这行销毁引用

内容的提问来源于stack exchange,提问作者Nidhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:27:05