当前位置: 首页 > 知识库问答 >
问题:

更新多维购物车数组中的值

闻人英韶
2023-03-14

我正在用PHP编写一个自定义购物车,我将产品信息添加到购物车会话中,如下所示:

$product_array=array($title,$price,$qty);
if(!isset($_SESSION['cart']))
$_SESSION['cart']=array();

if(!in_array($product_array,$_SESSION['cart']))
$_SESSION['cart'][]=$product_array;
else
{
// update price and quantity here
}

我的挑战是:如果产品已经存在于$\u SESSION['cart]数组中,我想更新产品的价格和数量($qty),而不是添加它。像这样的

price = price + $price,
qty = qty + $qty

共有1个答案

通宾白
2023-03-14

此示例与您的示例类似。您可以在else条件下从foreach循环添加代码。我正在考虑product_id而不是$title变量。

 $_SESSION['cart'][] = [ 'product_id'=> 12, 'price' => 100 , 'quantity' => 2 ];
 $_SESSION['cart'][] = [ 'product_id'=> 11, 'price' => 200, 'quantity' => 3 ];

    $product_array = ['product_id' => 11, 'price'=> 200, 'quantity' => 4 ];
    foreach( $_SESSION['cart'] as $key => $value ) {
      if( $value['product_id']  == $product_array['product_id']) {
         $_SESSION['cart'][$key]['quantity'] = $value['quantity'] + $product_array['quantity'];
           $_SESSION['cart'][$key]['price'] = $value['price'] + $product_array['price'];
        }
    }
print_r($_SESSION);

更新产品前的输出:

Array
(
    [cart] => Array
        (
            [0] => Array
                (
                    [product_id] => 12
                    [price] => 100
                    [quantity] => 2
                )
            [1] => Array
                (
                    [product_id] => 11
                    [price] => 200
                    [quantity] => 3
                )
        )
)

在会话中添加新产品后的输出。

Array
(
    [cart] => Array
        (
            [0] => Array
                (
                    [product_id] => 12
                    [price] => 100
                    [quantity] => 2
                )
            [1] => Array
                (
                    [product_id] => 11
                    [price] => 400
                    [quantity] => 7
                )
        )
)
 类似资料:
  • 我正在跟随Laravel的购物车教程,但即使我已经将他的代码复制到了点子上,它也不像教程中那样工作。每次你点击一个产品时,购物车的数量应该会增加,但事实并非如此。 我正在学习Max Schwarzmueller的“Laravel购物车”教程,您可以在youtube上找到:https://www.youtube.com/watch?v=56TizEw2LgI 我是php、laravel和sessio

  • 对于标准的opencart行为,在cart中添加产品后,用户需要手动点击update按钮进行数量更新。有关示例,请参阅http://demo.opencart.com/。但是,我想更改为当我改变数量时,推车信息可以立即刷新。我尝试过以下代码,但它不起作用: 对于Catalog/View/Theme/Default/Template/Checkout/cart.tpl,我已更新: button ty

  • 我有一个购物车,目前允许我添加产品,删除产品,并与一个产品在车上,我可以改变其数量。 然而,如果我在购物车中有两个产品,我试图改变第一个项目的数量,网站就会崩溃。它不会用新的数量重新加载页面,它只是超时,你不能再点击网站上的任何其他链接。 显示数量的代码为: 处理这个问题的代码如下: 我在这里查看了答案,但没有找到解决方案。有人能帮我吗?我会尽力提供可能需要帮助的任何其他信息。 我只是想澄清一下,

  • 我有一个Android购物应用程序,可以根据库存中产品的可用性来购买产品。最后,我需要扣除购物车上的产品数量,并更新数据库中该商品的数量。问题是,它当前更新了购物车中最后一件商品的数量的数据库值。如何让它更新购物车中商品数量的所有数据库值?。请有人帮帮我。Bellow是执行此操作的类的代码。

  • 在WooCommerce中,我希望有一个复选框,当按下时,它会将一个产品添加到我的购物车中,并且该产品的价格是购物车总价格的3%。 基于“在Woocommerce结帐页面中将产品添加到购物车的复选框字段”回答线程,并进行了一些编辑以满足我的需要,以下是我的代码: 它添加产品精细,一切都好。然而,当我设定价格时,它没有更新。 好的,这是未选中的复选框。 这是选中后的复选框。如您所见,项目的值为46.

  • 问题内容: 我正在尝试将此代码添加到我的WooCommerce设置中,以在我放置PHP的任何地方添加购物车链接,然后在使用AJAX更改购物车中的商品时对其进行更新:https : //docs.woocommerce.com/document/show- 购物车内容总计/ 以下是片段: HTML-PHP: 在文件中: 但是AJAX无法正常工作。是我需要添加到functions.php中的第二个片段