Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > запись массива в необходимом формате... |
Автор: AlexW 27.12.2007, 13:36 | ||||||
Есть код получающии список городов(массив $goroda) по названию области($oblasti[$b]), если инфа по городам есть. Из формируеться многомерный массив.
На выходе получаеться:
ВОПРОС - А как можно сделать чтобы было:
прямо головоломка какая та.., уже несколько часов медитирую.... ![]() |
Автор: skyboy 27.12.2007, 13:52 | ||
у тебя получился "двойной индекс". как, по-твоему, можно было бы обращаться к такому элементу? такая конструкция невозможна. можно так:
|
Автор: AlexW 27.12.2007, 14:07 |
Спасиб за разяснение, ваш вариант подходит тоже) |
Автор: PrivateRayan 27.12.2007, 14:22 |
сложно судить, не зная задачи, для которой этот массив делается, но лично мне бы больше понравился первоначальный, но без элемента с индексом 3 |
Автор: skyboy 27.12.2007, 14:44 |
ну, тогда для однотипной обработки - все элементы с ассоциативным индексом по имени города/региона, а значением - массив подрегионов. или пустой массив. ты об этом? |
Автор: PrivateRayan 27.12.2007, 15:15 | ||
тоже, кстати, хорошая идея.
Но для понимания сложнее, да. И вообще, все эти выкрутасы с ключами противны человеческой природе =) Но учитывая, что ключом в PHP может быть что угодно, и всякие операции, когда ключи и значения меняются местами, типа array_keys или count_values являются в пхп штатными, то предложенный способ вполне можно считать подходящим. Не говоря уже о том, что при значащих ключах поиск упрощается на порядки - isset вместо array_search. В этом смысле массив со значащими ключами и незначащими значениями куда лучше, чем обычный - со значащими значениями и ничего не значащими ключами (1,2,3). |
Автор: skyboy 27.12.2007, 15:25 | ||
я бы довел до аболюта однотипность структуры:
на тот случай, если возможна вложенность больше двух. в противном случае, придется определять тип элемента при обращении: если is_array - то есть подрегионы и названием является ключ, если нет - то подрегионов нет и названием является значение... лишние условия, все же. ну, если вложенность надо фиксированно двухуровневая(впрочем, зарекаться никому бы не советовал - жизнь, она штука изменчивая), то можно обойтись и двумя типами элементов: с вложенным массивом и с именем города в качестве значения. |