Как записать в сессию массив, следующего плана
Array(
[0] => Array
(
[ID] => 2041329
[NAME] => Apple
[PRICE] => 49900.00
[QUANTITY] => 1
)
[1] => Array
(
[ID] => 2041331
[NAME] => TV
[PRICE] => 11800.00
[QUANTITY] => 1
)
Запись произвожу следующим видом:
foreach($items as $k => $val){
$_SESSION['items'] = $val;
}
Но в сессии оказываются не все значения, подскажите как исправить сею ситуацию
У вас изначально не хватает знаний о том, как устроены массивы в PHP, и что из себя представляет переменная $_SESSION в нем. Как тут уже верно вам заметили, можно просто, безо всяких циклов, написать $_SESSION['items'] = $items;
, и после получать сохраненные товары из корзины (или что у вас там за список товаров хранится), перебирая $_SESSION['items']
как массив. Код будет примерно такой:
foreach ($_SESSION['items'] as $item) {
echo $item['ID'];
echo $item['NAME'];
/* ... */
}
если захотите вдруг обратиться напрямую, то это можно будет сделать так:
$_SESSION['items'][0]['ID'];
$_SESSION['items'][0]['NAME'];
/* ... */
$_SESSION['items'][1]['ID'];
$_SESSION['items'][1]['NAME'];
/* ... */
или так:
$arr = $_SESSION['items'];
$arr[0]['ID'];
$arr[0]['NAME'];
/* ... */
$arr[1]['ID'];
$arr[1]['NAME'];
/* ... */
Ссылка для обязательного изучения: http://php.net/manual/ru/language.types.array.php Но вообще советовал бы посмотреть/почитать какие-то обучающие материалы в стиле php for dummies, наверняка узнаете пару неожиданных вещей.
И да, массивы в PHP несколько отличаются от массивов во многих других языках программирования, если не хотите каждый раз наступать на грабли, которые описали здесь - лучше потратить день времени на совет в абзаце выше.
Это происходило потому что вы каждый элемент массива $items записывали в $_SESSION['items'], поэтому туда записовался последний элемент массива.
$_SESSION['items'][] = $val; //вот так правильно, только $_SESSION['items'] заранее нужно объявить пустым массивом
Проще записать их в сессию так:
$_SESSION['stored_items'] = $items;
Так может тоже работать.
$_SESSION['items']=$items;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть скрипт, который работает с БДСразу после запуска записывает в файл "Идёт обновление", а перед выходом "Обновлено [дата]"
Доброго времени сутокДосталась большая база с данными, и нужно вывести отчет об остатках на складе больше 3 месяцев, не затрагивая структуру...