Как сохранить данные в многомерный массив $_SESSION?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как сохранить данные в многомерный массив $_SESSION?

Сообщение Anonymous »

Я ломаю голову, пытаясь осознать это. Раньше я работал с массивами, но, похоже, у меня проблемы с ними в PHP. Поверьте мне, я просмотрел вопросы здесь и в других местах, поэтому заранее прошу прощения за то, насколько этот вопрос, вероятно, прост. То, что я пытаюсь сделать, это создать массив из массива???

по сути, я пытаюсь создать глобальную переменную сеанса, чтобы она хранила массив и это можно постоянно добавлять.

Код: Выделить всё

$_SESSION['school'] = array('events' => array());
пример массива событий:

Код: Выделить всё

events['name'] = 'Homecoming';
events['date'] = 'December 15, 2012';
events['cost'] = 18.00;
events['attending'] = array();
events['attending'][$i] = 'John'
Тогда будет что-то полезное

Код: Выделить всё

echo $_SESSION['school'][$i][events]['name'];
echo $_SESSION['school'][$i][events]['date'];
echo $_SESSION['school'][$i][events]['cost'];
...

Я попробовал создать его, как указано выше, и заполнить следующим образом (опять массив массива событий)

Код: Выделить всё

$_SESSION['school'] = array('events' => array());

$_SESSION['school'][$i][events]['name'] = 'Homecoming';
$_SESSION['school'][$i][events]['date'] = 'December 15, 2012';
$_SESSION['school'][$i][events]['cost'] = 18.00;
$_SESSION['school'][$i][events]['people'] = array('jane', 'john', 'bill');
Похоже, это не работает, потому что я могу сказать, что счетчик увеличивается по мере его заполнения. Я пробовал несколько других способов, но по какой-то причине мне не удалось это понять. Большинство примеров, с которыми я столкнулся, не похожи на то, что я пытаюсь сделать. Будем очень признательны за любую помощь.

--------ОБНОВЛЕННЫЙ ВОПРОС, ОСНОВАННЫЙ НА ОБРАТНОЙ СВЯЗИ --------
Я думаю, что я Я очень близок к пониманию того, что вы обновили логику, и я попытался обновить свой код, но столкнулся со следующей проблемой. У меня есть PHP-скрипт инициализации, который устанавливает $_SESSION['school'] = array(array());. Это не заполняется позже, и в какой-то момент я проверяю $_SESSION['school'] с помощью счетчика. Он всегда возвращает 1 при первоначальной проверке, даже если ничего не было добавлено. Однако я предполагаю, что это потому, что он содержит один пустой массив. Это заставляет меня усомниться в структуре.
Поскольку я визуальный человек, я думаю, что это то, что мне нужно, но я не уверен, как это сделать.

Код: Выделить всё

//would be an 1 dimensional array that empty until a school is added later on in code.
$_SESSION['school'] = array();
его элементы будут содержать многомерный массив с элементами

Код: Выделить всё

['name'] = 'Johnson High';
['address'] = '121 elm';
['city'] = 'san jose';
['state'] = 'California';
['events'] = array();
['events'] пуст, пока не будут добавлены события, но вот некоторые элементы, которые он может содержать

Код: Выделить всё

['events']['name'] = 'homecoming';
['events']['date'] = 'December 15, 2012';
['events']['cost'] = '18.00';
в конце концов $_SESSION['school'] может содержать от 1 до многих школ, которые я мог бы просмотреть.

Теперь, из-за моего непонимания обновленной логики danL, я не понимаю, как имя и события могут иметь один и тот же индекс? Когда я смотрю на код, у меня возникает ощущение, что $_SESSION['school'] будет выглядеть так

Код: Выделить всё

$_SESSION['school']{ 'name' => 'Johnson High',
'events' => array('basketball', 'soccer', 'football'),
'name' => 'West Forsyth High',
'events' => array('basketball', 'soccer', 'football')};
В этом случае каждый элемент имеет свой индекс. Должно быть, мне здесь не хватает чего-то фундаментального. Я постоянно пытаюсь прочитать и понять, что я делаю неправильно. Думаю, я просто смотрю на проблему под неправильным углом.

Подробнее здесь: https://stackoverflow.com/questions/140 ... sion-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»