Храните и извлекайте многомерный массив, используя php и mysql.
-
23-08-2019 - |
Вопрос
У меня есть многомерный массив в PHP, например:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
Теперь я хочу сохранить этот массив в таблице MySQL и снова получить его точно так же на другой странице PHP.
Я пытался использовать serialize()
и unserialize()
$array= serialize($array);
а затем на другой странице
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
Но я похоже что-то делаю не так, в начале у меня вылезло var_dump
из логическое значение (ложь) и теперь я получаю var_dump
из НУЛЕВОЙ.
Решение
Ваш код выглядит нормально...
Одна вещь, которая может вас застать врасплох, это если ваш столбец слишком мал: если вы используете VARCHAR(255), ваши данные могут быть усечены и не будут десериализованы.Если вы добавите значение $row['Array']
Я мог видеть, цело ли оно.
Другие советы
Используйте тип столбца ТЕКСТ.Сериализованные данные часто не соответствуют VARCHAR(255).
Вы можете использовать кодировку json, json_encode($array), и вы получите строковое значение в нотации json, чтобы его можно было сохранить в базе данных, а также извлечь и выполнить json_decode($string, true), чтобы вы могли снова преобразовать его в массив.Если вы не передадите аргумент true в json_decode, он будет преобразован в stdClass.
Это моя таблица в php/html.Мне нужно сохранить и получить данные php Details(p),Quantity(q),Rate(r) в виде отдельного формата таблицы.