Intereting Posts
php допускает только буквы, цифры, пробелы и конкретные символы, используя pregmatch Содержимое ответа должно быть строкой или объектом, реализующим __toString (), \ "boolean \". Строка анализа, содержащая диапазон значений до минимальных и максимальных переменных PHP динамические DocBlocks уровня страницы Настраивание страниц PHP и MySQL Вывод: не устанавливать laravel / framework v4.2.22 Лучший способ подавить PHP-ошибки на рабочих серверах Как проверить либо Zend_Form_Element_File, либо Zend_Form_Element_Text не пустые. Ошибка: общие конфликты php55w с php-common на CentOS 6.5 Хорошие примеры приложений Zend Framework для изучения из Elasticearch-Php-Mysql datetime фильтр и запрос Facebook php app продолжает цикл в IE, есть ли исправление на стороне сервера? Laravel 5.1: htmlentities () ожидает, что параметр 1 будет строкой, заданный массив МЕНЬШЕ CSS & Symfony – Динамическое изменение цветовых схем Как связать несколько параметров с подготовленным оператором MySQLi

Многомерный массив в php SESSION

У меня возникла проблема с обновлением элемента массива с переменной $_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>