PHP Двумерный Ассоциативный Массив Implode - PullRequest
0 голосов
/ 09 октября 2010

Я хотел бы сохранить следующий массив в отдельном текстовом поле в таблице MySQL:

$user_rating[0] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 1', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[1] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 2', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[2] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 3', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[3] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 4', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[4] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 5', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[5] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 6', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

$user_rating[6] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
                    'category' => 'Category 7', 
                    'description' => 'XXXXXXXXXXXXXXXXX',
                    'link' => 'XXXXXXXXXXXXXXXXX',
                    'thumbnail' => 'XXXXXXXXXXXXXXXXX');

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

Любые другие / лучшие решения по структуре массива также приветствуются.

Спасибо

Ответы [ 4 ]

2 голосов
/ 09 октября 2010

Во-первых, вам не нужно указывать упорядоченные числовые ключи, просто напишите:

$user_rating[] = array();

Во-вторых, зачем вам хранить весь массив в виде строки?Почему бы просто не сохранить каждое из его полей как столбец s?Разве это не вариант?

В-третьих, вы можете хранить сериализованные массивы (или любые другие данные) в БД.

serialize($user_rating);
store_to_db();
...
$handler = unserialize(get_data_out());

Если вы хотите сохранить его как прямойвверх строка, однако, это немного сложнее.Вам придется циклически перемещаться по массиву и добавлять ключи и значения по отдельности.

1 голос
/ 09 октября 2010

Вы можете использовать PHP serialize для преобразования массива в одну строку.Когда вы извлекаете его из базы данных, вы можете использовать unserialize, чтобы преобразовать его обратно в массив.

0 голосов
/ 09 октября 2010

Вы рассматривали JSON?Это может быть лучшим выбором, если вы хотите придерживаться одного поля.

PHP - нотация объектов JavaScript

edit: Или даже лучшеПрочитайте (и проголосуйте) за комментарий ниже, потому что serialize является нативной функцией.

0 голосов
/ 09 октября 2010

Конечно, есть лучшее решение.
Храните эти данные в виде отдельных записей в отдельной таблице.
Для этого и нужны реляционные базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...