![]() |
Как лучше хранить структурированные данные? Есть многомерный массив, даже скорей не многомерный, а древовидный. Какии образом его лучше сохранять/читать? Тут либо XML либо еще как, например свое написать. Кто что подскажет? |
Сериализация о чем нибудь говорит ?? |
Есть еще Json. Очень интересно узнать твои идеи по поводу "свое написать", у тебя же наверное были какие то мысли, раз дошел до этого.. Мне правда интересно, никогда не сталкивался с такой проблемой и Даже в голову ничего не приходит.. Один способ я нашел в сети, но это извращение в чистом виде.. |
Прежде всего надо отталкиваться от того, что в массиве и зачем |
[quote=Гламурный Креведко;26826624] Прежде всего надо отталкиваться от того, что в массиве и зачем [/quote] что-то типа array("abc"=>def,array(1,2,3),array(array("a1"=>array(1,2,3)))) и т.п. ЗЫ по идее сериализации должно хватить. но хотелось бы по-модному: xml кокойты =)) |
[quote=Kuba;26826577]Очень интересно узнать твои идеи по поводу "свое написать",[/quote] рекурсивно пропарсить, как же еще. |
0-Украинские субтитры > че, где хранить собираешься? ниче нипанятно. в базе данных или php. Нужно нормально формировать задачу. Если нужен просто массив, который в php можно было использовать, то есть вариант в файл записать этот массив с помощью функции var_export() (и естественно других ф-ий) а потом просто инклудить. |
[quote=Искусственный Интеллект1;26827566]че, где хранить собираешься? ниче нипанятно. в базе данных или php[/quote] для хранения структурированных база данных подходит слабо, не? =) А в php данные вообще не хранят. Хранят в файлах, если ты конечно не шайтан. =)) |
mongo подходит не слабо |
Не знаю, чо такое mongo, но спасибо, попробую с сериализацией. Надеюсь, особых косяков там не замечалось. |
Насчет сериализации. А оно не начнет глючить, если, к примеру, данные насохраняю, и прийдется перелазить в следующую версию пхп? А то будет очень готично. И главное, радостно, если все полетит из-за несоотвецтвий версий и придется писать парсер, чтобы пересохранить =) |
Га? |
все нормально будет |
(на будущее): А как удалять из многомерного массива? Допустим, $a=array("abc"=>"1","abcd"=>"2","abcde"=>"3"); и надо удалить $a[abcd], то array_splice($a,1,1) вроде не покатит, потому что мы кагбы и не знаем, на какой оно позиции. unset делать? unset($a[abcd])? Когда-то сталкивался с его глюком, что оно не удаляло, а делало пустым, но может то было токо под винды и кажеццо еще под php3. Может щас оно и нормально ансеттит. но с тех пор не пользовался. |
13-Гавайские субтитры >а проверить не вариант? unset юзай. можно еще сделать ф-цию которая циклом будет добавлять нужные значения в новый массив и возвращать его. и у тебя в примере ассоциативный массив. [url]http://dmitriydenisov.com/php-mysql/php-basics/massivy-php.html[/url] |
ok пасибо |
А как сделать динамический ансет? ну вот есть у меня $a=array("abc"=>def,array(1,2,3),array(array("a1"=>ar ray(1,2,3)))) и т.п. В форме есть текстовое поле $a_kill с последующим unset($a[$_POST[a_kill]]). Каким образом грохнуть, скажем, значение "abc" в массиве $a, с юзаньем формы? |
Да, вопрос трудный. И есть подозрение, что он еще и невыполнимый. Во всяком случае, на данном уровне развития пхп. |
16-Гавайские субтитры > unset удаляет из массива без перестройки ключей. Т.е. $array=array(1,2,3) и unset($array[1]) сделает вот такое $array[0] => 1 $array[2] => 3 для нормального удаления неассоциативных массивов рекомендую array_splice() |
Тут возникла надобность сохранить объект в удобоваримом формате и кое-что подправить. Как это сделать? Через var_export вроде нормуль, токо, во первых, как его инклудить потом, чтобы присвоить назад, т.к. оно начинается со слова array..... (править каждый раз, что ли, или же если поставить перед этим $a=, то покатит?). И что делать, если в этом объекте есть бинарные данные. Вижу, что бинарное нихрена не сбережоццо, если делать просто через var_export($a) и потом писать в файл. |
Только RDF. Не пожалеете. |
20-p3003 > та я уже свой rdf наваял, т.к. сериализация оказалась тормозным процессом, да и довольно неудобным для обновления данных. =) |
Текущее время: 07:30. Часовой пояс GMT +3. |