У меня возникла проблема с обновлением элемента массива с переменной $_SESSION
от PHP. Это основная структура:
$product = array(); $product['id'] = $id; $product['type'] = $type; $product['quantity'] = $quantity;
И затем, используя array_push()
я вставляю этот продукт в переменную SESSION.
array_push($_SESSION['cart'], $product);
Теперь это основная часть, с которой сталкивается проблема:
foreach($_SESSION['cart'] as $product){ if($id == $product['id']){ $quantity = $product['quantity']; $quantity += 1; $product['quantity'] = $quantity; } }
Я хочу увеличить количество продукта в переменной $_SESSION['cart']
. Как я могу это сделать?
Не слепо вводите продукт в свою сессию. Используйте идентификатор продукта в качестве ключа, тогда тривиально найти / манипулировать этим элементом в корзине:
$_SESSION['cart'] = array(); $_SESSION['cart'][$id] = array('type' => 'foo', 'quantity' => 42); $_SESSION['cart'][$id]['quantity']++; // another of this item to the cart unset($_SESSION['cart'][$id]); //remove the item from the cart
это не лучшие ответы для u … но надежда может помочь вам, ребята, не экспертные кодеры, и просто изучите кодирование на этом форуме ^, ^. Вы всегда должны пытаться решить. например, надежда может помочь обновить количество значений:
<?php if(isset($_POST['test'])) { $id =$_POST['id']; $newitem = array( 'idproduk' => $id, 'nm_produk' => 'hoodie', 'img_produk' => 'images/produk/hodie.jpg', 'harga_produk' => '20', 'qty' => '2' ); //if not empty if(!empty($_SESSION['cart'])) { //and if session cart same if(isset($_SESSION['cart'][$id]) == $id) { $_SESSION['cart'][$id]['qty']++; } else { //if not same put new storing $_SESSION['cart'][$id] = $newitem; } } else { $_SESSION['cart'] = array(); $_SESSION['cart'][$id] = $newitem; } } ?> <form method="post"> <input type="text" name="id" value="1"> <input type="submit" name="test" value="test"> <input type="submit" name="unset" value="unset"> </form>
-<?php if(isset($_POST['test'])) { $id =$_POST['id']; $newitem = array( 'idproduk' => $id, 'nm_produk' => 'hoodie', 'img_produk' => 'images/produk/hodie.jpg', 'harga_produk' => '20', 'qty' => '2' ); //if not empty if(!empty($_SESSION['cart'])) { //and if session cart same if(isset($_SESSION['cart'][$id]) == $id) { $_SESSION['cart'][$id]['qty']++; } else { //if not same put new storing $_SESSION['cart'][$id] = $newitem; } } else { $_SESSION['cart'] = array(); $_SESSION['cart'][$id] = $newitem; } } ?> <form method="post"> <input type="text" name="id" value="1"> <input type="submit" name="test" value="test"> <input type="submit" name="unset" value="unset"> </form>