Как сохранить массив в виде строки PHP?

У меня есть JavaScript, который форматирует таблицу HTML, которая принимает некоторые параметры для ее настройки. У меня также есть таблица отчетов в mysql, которая содержит определения моих отчетов: поле для имени отчета, описание, sql, нижний колонтитул, разрешения, статус отчета и некоторые специфические параметры отчета. Я строю параметры в виде массива, так что я могу установить значения по умолчанию, которые затем могут быть перезаписаны другими процессами перед передачей процессу, который превращает этот массив в параметры javascript.

Мы используем PHP для создания отчетов на основе информации в таблице, и он объединяет массив «параметров по умолчанию» с массивом «параметров, специфичных для отчета». Прежде чем мы поместили определения отчетов в базу данных, для каждого отчета была функция, использующая array_merge, которая объединяла массив параметров по умолчанию и массив параметров конкретного отчета.

например

$defaultparameters = array (
'base_path' => "'/inc/plugin/'",
'btn_reset' => "'true'",
'enable_default_theme' => "'true'");
$thisReportParameters  = array (
'extensions' => "[{ name: 'sort', types: ['String', 'String', 'String','String', 'String','String', 'Number']},'col_2'=> "'multiple'",'col_3'=> "'select'");
$parameters = array_merge ($defaultparameters,$thisReportParameters);

Этот массив затем передается функции, которая создает javascript для страницы.
Теперь мы поместили все отчеты в таблицу. У меня возникли проблемы с извлечением определенных параметров отчета в ассоциативный массив.
Параметры по умолчанию теперь устанавливаются в классе отчета как свойство объекта отчета. Я хочу получить дополнительные параметры отчета из базы данных в массив, чтобы объединить их.
Когда я добавил ‘col_2’ => «‘множественный’ ‘,’ col_3 ‘=>»‘ select ‘»в базу данных и вернул ее обратно в виде массива, он поместил всю строку как элемент [0] в массиве.
т.е.

Array ([0] => "'col_2'=> "'multiple'"'col_3'=> "'select'"")

в отличие от

Array([col2] =>"'multiple'",[col_3]=> "'select'")

Я рассмотрел просто добавление строки из БД в конец конфигурации javascript, но это не переписало бы какие-либо настройки, которые уже были определены в массиве настроек по умолчанию, поэтому мне нужно сначала добавить его в массив, чтобы при слиянии он перезаписывал любые значения по умолчанию, где ключи одинаковы.

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

Я подумал о том, чтобы взорвать строку, а затем проанализировать пары, чтобы построить массив, но в нем также может быть значение «,», что может испортить взрыв.

Вероятно, есть действительно изящный способ добиться этого, но в данный момент он ускользает от меня …

Любые предложения приветствуются

С

-1

Решение

Вы могли бы сериализации ваши массивы.

Там также есть возможность шифровать они в JSON, что может быть лучше, если ваша БД является postgres — она ​​имеет некоторую встроенную поддержку для таких вещей, и было бы легче работать с вашими данными, используя другой язык, если возникнет такая необходимость.

В любом случае, убедитесь, что правильно очистили ваши данные, прежде чем пытаться поместить их в БД.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector