Автор Тема: массив со вложенным массивом  (Прочитано 3847 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Night_Wolf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
массив со вложенным массивом
« : 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

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
массив со вложенным массивом
« Ответ #1 : 08 Ноября 2005, 15:00:24 »
Array
Изучи.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
массив со вложенным массивом
« Ответ #2 : 08 Ноября 2005, 16:20:53 »
Night_Wolf
Возможные варианты:
1.Использовать serialize() и писать строку
2.Использовать мозг и понять,
- что хранит массив
- как это лучше представить
- как это лучше хранить

[off]Первый вариант не самый плохой, однако[/off]
LJ: Backslashed life (rss)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
массив со вложенным массивом
« Ответ #3 : 08 Ноября 2005, 16:21:59 »
Night_Wolf
поля под ключи массива в БД есть?

в чём именно неграмотность и отсутствие красоты?

Оффлайн Night_Wolf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
массив со вложенным массивом
« Ответ #4 : 08 Ноября 2005, 16:31:55 »
Я не знаю наперед сколько знеачений храниться в субмассиве.
Из моего кода на разобрать вложенный массив $line[\'types\'] и положить в переменную.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
массив со вложенным массивом
« Ответ #5 : 08 Ноября 2005, 18:24:51 »
блин, я фигею таких способностей задавать вопросы.

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

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

Оффлайн Night_Wolf

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
массив со вложенным массивом
« Ответ #6 : 08 Ноября 2005, 18:54:12 »
Цитировать
непосильная задача

Можно на примере?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
массив со вложенным массивом
« Ответ #7 : 08 Ноября 2005, 19:14:12 »
пойди в форум по мускулю опиши свою структуру данных, и спроси, как организуют таблицы в таких случаях.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
массив со вложенным массивом
« Ответ #8 : 08 Ноября 2005, 19:22:05 »
RomikChef
[off]А в чем принципиальное отличие serialize() от implode() в этом случае?...[/off]
LJ: Backslashed life (rss)

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
массив со вложенным массивом
« Ответ #9 : 08 Ноября 2005, 19:23:30 »
Night_Wolf
Цитировать
Night_Wolf:
Можно на примере?

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28