Ваша проблема не большая проблема.Возможно, вы просто захотите добавить правильный if
в свои коды, чтобы сделать ++
для этого нового элемента, который вы можете получить.
Я не уверен в некоторых ваших переменных.Но я думаю, что вам может понадобиться if
перед вашим array_push
, может быть, что-то похожее на это:
if ((int) $newproduct['id'] == (int) $value["id"]) {
$_SESSION['shopping_cart'][$key]['quantity'] = (int) $_SESSION['shopping_cart'][$key]['quantity'] + 1;
}
, и ваша проблема будет решена, если вы добавите правильный if
, чтобы не добавлять ++
ко всем $value
с.Этот также может работать:
if ((int) $newproduct['id'] == (int) $value["id"]) {
$_SESSION['shopping_cart'][$key]['quantity'] = (int) $value['quantity'] + 1;
}
$_SESSION['shopping_cart'] = array
(
"0" => array
(
"id" => "2",
"title" => "Vewlix 1080p (red and white)",
"image" => "amazing-modern-villa-Freshome-02.jpg",
"variants" => array
(
"0" => array
(
"option_id" => "1",
"option_name" => "Panel 1 player",
"option_price" => "0.00",
),
),
"quantity" => "1",
"unit_price" => "1950.00",
"price" => "1950",
),
"1" => array
(
"id" => "2",
"title" => "Vewlix 1080p (red and white)",
"image" => "amazing-modern-villa-Freshome-02.jpg",
"variants" => array
(
"0" => array
(
"option_id" => "1",
"option_name" => "Panel 2 players (+50 euros)",
"option_price" => "50.00",
),
),
"quantity" => "1",
"unit_price" => "1950.00",
"price" => "2000",
),
);
foreach ($_SESSION['shopping_cart'] as $key => $value) {
if (in_array($newproduct['id'], $shopping_ids) && empty($variants_diff)) {
if ((int) $newproduct['id'] == (int) $value["id"]) {
$_SESSION['shopping_cart'][$key]['quantity'] = (int) $_SESSION['shopping_cart'][$key]['quantity'] + 1;
}
} else {
array_push($_SESSION['shopping_cart'], $newproduct);
}
}