Forum Webscript.Ru

Программирование => PHP => Тема начата: Night_Wolf от 08 Ноября 2005, 14:55:07

Название: массив со вложенным массивом
Отправлено: Night_Wolf от 08 Ноября 2005, 14:55:07
Не могу правильно разоборать такой массив:

Array ( [0] => Array ( [NAME] => Техническая поддержка Photoshop 4 [ID] => 139 [AUTHOR] => Кен Ойер [PUBLISH] => Комиздат [YEAR] => 1998 [types] => Array ( [0] => Графика и дизайн ) ) [1] => Array ( [NAME] => Мир Corel Draw! [ID] => 112 [AUTHOR] => Михаэль Оссвальд [PUBLISH] => BHV [YEAR] => 1995 [types] => Array ( [0] => Графика и дизайн ) ) [2] => Array ( [NAME] => Внутренний мир TCP / IP [ID] => 285 [AUTHOR] => Хейвуд Дрю [PUBLISH] => DiaSoft [YEAR] => 2003 [types] => Array ( [0] => Коммуникации и сети [1] => Интернет-протоколы ) ) )

Мне надо записать такой массив в бд:

Я пробовал вот так

foreach($arr as $line)
{
$sql[] = "(\'$line[ID]\',\'$line[NAME]\',\'$line[AUTHOR]\',\'$line[PUBLISH]\',\'$line[YEAR]\',\'".$line[\'types\'][0]."|".$line[\'types\'][1]."|".$line[\'types\'][2]."\')";
}

Но это ведь не грамотно и не красиво...
Название: массив со вложенным массивом
Отправлено: hanslinger от 08 Ноября 2005, 15:00:24
Array (http://ru.php.net/manual/en/language.types.array.php)
Изучи.
Название: массив со вложенным массивом
Отправлено: CGVictor от 08 Ноября 2005, 16:20:53
Night_Wolf
Возможные варианты:
1.Использовать serialize() и писать строку
2.Использовать мозг и понять,
- что хранит массив
- как это лучше представить
- как это лучше хранить

[off]Первый вариант не самый плохой, однако[/off]
Название: массив со вложенным массивом
Отправлено: Меняздесьдавнонет от 08 Ноября 2005, 16:21:59
Night_Wolf
поля под ключи массива в БД есть?

в чём именно неграмотность и отсутствие красоты?
Название: массив со вложенным массивом
Отправлено: Night_Wolf от 08 Ноября 2005, 16:31:55
Я не знаю наперед сколько знеачений храниться в субмассиве.
Из моего кода на разобрать вложенный массив $line[\'types\'] и положить в переменную.
Название: массив со вложенным массивом
Отправлено: Меняздесьдавнонет от 08 Ноября 2005, 18:24:51
блин, я фигею таких способностей задавать вопросы.

implode()
как разделитель используй запятую, а не палку.

лучше было бы конечно сделать по-человечески, через связанные таблицы, но это, как я понимаю, для тебя непосильная задача.
Название: массив со вложенным массивом
Отправлено: Night_Wolf от 08 Ноября 2005, 18:54:12
Цитировать
непосильная задача

Можно на примере?
Название: массив со вложенным массивом
Отправлено: Меняздесьдавнонет от 08 Ноября 2005, 19:14:12
пойди в форум по мускулю опиши свою структуру данных, и спроси, как организуют таблицы в таких случаях.
Название: массив со вложенным массивом
Отправлено: CGVictor от 08 Ноября 2005, 19:22:05
RomikChef
[off]А в чем принципиальное отличие serialize() от implode() в этом случае?...[/off]
Название: массив со вложенным массивом
Отправлено: CGVictor от 08 Ноября 2005, 19:23:30
Night_Wolf
Цитировать
Night_Wolf:
Можно на примере?

Основная таблица (книг) - плюс таблица авторов, таблица паблишеров, таблица тем.