Храните и извлекайте многомерный массив, используя php и mysql - PullRequest
8 голосов
/ 21 мая 2009

У меня есть многомерный массив в 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 из bool (false) , а теперь я получаю var_dump из NULL .

Ответы [ 4 ]

8 голосов
/ 21 мая 2009

Ваш код выглядит нормально ...

Одна вещь, которая может вас поймать, это если ваш столбец слишком мал - если вы используете VARCHAR (255), ваши данные могут быть усечены и не будут десериализованы. Если вы добавите значение $row['Array'], я смогу убедиться, что оно целое.

3 голосов
/ 21 мая 2009

Используйте тип столбца TEXT. Сериализованные данные часто не соответствуют VARCHAR (255).

1 голос
/ 21 мая 2009

Вы можете использовать json encode, json_encode ($ array), и вы получите строковое значение в нотации json, чтобы вы могли сохранить в базе данных, а также получить и выполнить json_decode ($ string, true), чтобы вы могли преобразовать в массив снова. Если вы не передадите истинный аргумент в json_decode, он будет преобразован в класс stdClass.

0 голосов
/ 06 июня 2009
1001 * Частности * Количество Скорость Сумма Сумма Сумма Другие Другие Количество налог Всего Это моя таблица в php / html. Мне нужно хранить и получать php-данные (p), количество (q), скорость (r) в виде отдельной таблицы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...