【问题标题】:How to update specific index value of array in php laravel?如何在php laravel中更新数组的特定索引值?
【发布时间】:2021-12-28 23:49:50
【问题描述】:

我正在尝试创建添加到购物车功能,并且产品存储在数组中。数组是这样的:

array:2 [▼
  0 => array:2 [▼
    "product_id" => "Produk-0036"
    "quantity" => "2"
  ]
  1 => array:2 [▼
    "product_id" => "Produk-0037"
    "quantity" => "3"
  ]
]

我的问题是如果数组中已经存在product_id,如何更新数量?

$get_cart = Cookie::get('user_cart');
if(isset($get_cart)) {
    $cart_array[] = json_decode($get_cart);
}

$cart_array[] = ["product_id" => $request->product_id, "quantity" => $request->quantity];
$cart_json = json_encode($cart_array);
$cart_cookies = Cookie::forever('user_cart', $cart_json);

使用上面的代码将在数组中添加新索引,而不是更新已存在产品的数量

谢谢

【问题讨论】:

  • 你可能会从中得到一些想法。 (购物车在那里举行会议)。 stackoverflow.com/questions/69977302/…
  • @DebasisRath 啊!谢谢,它对我有用。我只需要将会话更改为 cookie
  • 很高兴知道 Catto,1 喜欢这个答案对我来说是令人鼓舞的 :)

标签: php arrays laravel


【解决方案1】:

我认为您需要在 Cookie::forever 之前更新产品数量。

你可以参考我的建议:

$cart_array = [
        ["product_id" => "Produk-0036", "quantity" => 2],
        ["product_id" => "Produk-0037", "quantity" => 3],
    ];
    
foreach($cart_array as &$cart)
{
  if(isset($cart["product_id"]) && $cart["product_id"] == $request->product_id) 
  {
      $cart["quantity"] += $request->quantity;
  }
}
$cart_json = json_encode($cart_array);
$cart_cookies = Cookie::forever('user_cart', $cart_json);

【讨论】:

    【解决方案2】:

    你可以使用array_map()函数

    试试这样的:

    $cart_array = [
        [
            "product_id" => "Produk-0036",
            "quantity" => "2"
        ],
        [
            "product_id" => "Produk-0037",
            "quantity" => "3"
        ]
    ];
    
    $product_id = "Produk-0036";        // product_id to update
    
    $cart_array = array_map(function ($item) use ($product_id) {
        if ($item["product_id"] == $product_id) {
            $item["quantity"] = "5";    // update quantity
        }
        return $item;
    }, $cart_array);
    
    var_dump($cart_array); // OUTPUT: updated array
    

    【讨论】:

      猜你喜欢
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多