| |
|
|
| | У меня функция формирует массив, я к ней очень часто обращаюсь, так вот вопрос, как можно сохранить массив и куда, чтоб потом к не вызывать заново функцию, а обращаться уже непосредственно к сформированному массиву (массив многомерный). | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:26)
| | | Сессии тоже многомерные и безразмерные :-)))
Пишите сразу в сессии, но учитывайте, что если поьзователь закроет все страницы обозревателя, и при отключенных куках, то массив нужно создать заново. | |
| |
|
|
| |
|
|
| |
для: XPraptor
(27.01.2006 в 15:28)
| | | Нет, мне этот вариант не подходит, содержание массива очень редко меняется, а размер его очень большой. Я думала, что нужно сохранить его в файл, при расскрытии его всего, что-то вроде того, что делает функция print_r, но она только выводит массив на печать. | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:31)
| | | А какой смысл в файл сохранять? Его же придется считывать из файла постоянно, формировать наверное быстрее будет.
А почему не подходят сессии? Я же говорю б-е-з-р-а-з-м-е-р-н-ы-е. | |
| |
|
|
| |
|
|
| |
для: XPraptor
(27.01.2006 в 15:33)
| | | Хорошо, я создаю сессию
$my_array = my_function();
$HTTP_SESSION_VARS['array'] = $my_array
| ;
Потом обращаюсь к массиву как
$mass = $HTTP_SESSION_VARS['array'];
|
и дальше работаю с массивом $mass так, как работала бы с массивом $my_array
Но я не могу работать с ним нет значений. Что я делаю не так?
функция print_r() выводит просто | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:53)
| | | В принципе, вы все верно указали. Единственное, не обязательно пользоваться уставревшей конструкцией $HTTP_SESSION_VARS['array'].
Используйте $_SESSION['не нужно называть array переменную']=$my_array;
На счет print_r не уверен, но вывод вам показал, что данные все же есть. Их можно использовать, хоть циклом перебрать весь массив хоть обратиться сразу по имени и индексу. | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:31)
| | | сохранять в таблицу MySQL пробовал? одно поле - под значения, и n полей под размерности... | |
| |
|
|
| |
|
|
| |
для: chrom
(27.01.2006 в 16:12)
| | | Данные я и беру из БД, а массив все же пустой.
Но я другим способом пошла. Я все же сохранила массив в файл "val_of_array.php"? в котором и содержится этот массив в виде:
<?php $my_array = array(
"name" =>
array(
"XXX", "YYY"
),
"code" =>
array(
"111", "222"
),
...
)?>
| . Потом где я использую этот массив, я просто инклудю этот файл и работаю с массивом $my_array и не надо для каждого пользователя создавать сессию | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 16:26)
| | | если у тебя данные уже содержатса в БД, тогда вообще не понятно зачем тебе все это в файл загонять... | |
| |
|
|
| |
|
|
| |
для: chrom
(27.01.2006 в 16:30)
| | | потому, что у меня за основу берутся данные из БД, но над ними проводится, еще куча работы | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 16:32)
| | | сохраняй результаты работы в таблицу/временную таблицу... | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:26)
| | | А если использовать "упаковку" массива в строку - serialize(), и потом ее записывать в файл?
У себя я попробовал применить такое сохранения массива в файл. Правда пока не знаю, как все это покажет себя в работе с крупными массивами. | |
| |
|
|
| |
|
|
| |
для: LO
(27.01.2006 в 15:26)
| | | Упакуйте массив в строку, при помощи функции serialize(), подробнее можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=907. | |
| |
|
|