Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись массива в необходимом формате... помогите пожалуйста разобраться 
:(
    Опции темы
AlexW
Дата 27.12.2007, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 22.1.2006

Репутация: нет
Всего: 1



Есть код получающии список городов(массив $goroda) по названию области($oblasti[$b]), если инфа по городам есть.
Из формируеться многомерный массив.
Код

        for($b=0;$b<count($oblasti);$b++)
            {
            $stra[subregion][]=$oblasti[$b];
            $goroda = get_array_goroda($oblasti[2][$b]);
            foreach($goroda as $value)
                {
                $stra[subregion][$oblasti[$b]][]=$value;
                }
            }


На выходе получаеться:
Код

            [subregion] => Array
                (
                    [0] => Sachsen-Anhalt
                    [1] => Mecklenburg-Vorpommern
                    [2] => Rheinland-Pfalz
                    [3] => Baden-Württemberg
                    [Baden-Württemberg] => Array
                        (
                            [0] => Ulm
                            [1] => Rottweil
                            [2] => Heilbronn
                            [3] => Offenburg
                            [4] => Mannheim
                            [5] => Konstanz
                            [6] => Freiburg Im Breisgau
                            [7] => Heidelberg
                            [8] => Stuttgart
                            [9] => Karlsruhe
                        )

                    [4] => Niedersachsen
                    [5] => Thüringen
                )

ВОПРОС - А как можно сделать чтобы было:
Код

            [subregion] => Array
                (
                    [0] => Sachsen-Anhalt
                    [1] => Mecklenburg-Vorpommern
                    [2] => Rheinland-Pfalz
                    [3] => [Baden-Württemberg] => Array
                        (
                            [0] => Ulm
                            [1] => Rottweil
                            [2] => Heilbronn
                            [3] => Offenburg
                            [4] => Mannheim
                            [5] => Konstanz
                            [6] => Freiburg Im Breisgau
                            [7] => Heidelberg
                            [8] => Stuttgart
                            [9] => Karlsruhe
                        )

                    [4] => Niedersachsen
                    [5] => Thüringen
                )


прямо головоломка какая та.., уже несколько часов медитирую.... smile 
PM MAIL   Вверх
skyboy
Дата 27.12.2007, 13:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(AlexW @  27.12.2007,  12:36 Найти цитируемый пост)
[3] => [Baden-Württemberg] => Array

у тебя получился "двойной индекс". 
как, по-твоему, можно было бы обращаться к такому элементу?
такая конструкция невозможна.
можно так:
Код

[3] => Array 
           (
             'name'=> 'Baden-Württemberg',
             'sub' => Array
                        (
                            [0] => Ulm
                            [1] => Rottweil
                            [2] => Heilbronn
                            [3] => Offenburg
                            [4] => Mannheim
                            [5] => Konstanz
                            [6] => Freiburg Im Breisgau
                            [7] => Heidelberg
                            [8] => Stuttgart
                            [9] => Karlsruhe
                        )
           )


PM MAIL   Вверх
AlexW
Дата 27.12.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 22.1.2006

Репутация: нет
Всего: 1



Спасиб за разяснение, ваш вариант подходит тоже) 


PM MAIL   Вверх
PrivateRayan
Дата 27.12.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.12.2007

Репутация: 1
Всего: 2



сложно судить, не зная задачи, для которой этот массив делается, но лично мне бы больше понравился первоначальный, но без элемента с индексом 3
PM MAIL   Вверх
skyboy
Дата 27.12.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(PrivateRayan @  27.12.2007,  13:22 Найти цитируемый пост)
 но без элемента с индексом 3

ну, тогда для однотипной обработки - все элементы с ассоциативным индексом по имени города/региона, а значением - массив подрегионов.  или пустой массив. 
ты об этом?
PM MAIL   Вверх
PrivateRayan
Дата 27.12.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.12.2007

Репутация: 1
Всего: 2



тоже, кстати, хорошая идея.
Код

                    [Sachsen-Anhalt] => ''
                    [Mecklenburg-Vorpommern] => ''
                    [Rheinland-Pfalz] => ''
                    [Baden-Württemberg] => Array
                        (
                            [0] => Ulm
                            [1] => Rottweil
                            [2] => Heilbronn
                            [3] => Offenburg
                            [4] => Mannheim
                            [5] => Konstanz
                            [6] => Freiburg Im Breisgau
                            [7] => Heidelberg
                            [8] => Stuttgart
                            [9] => Karlsruhe
                        )



Но для понимания сложнее, да. И вообще, все эти выкрутасы с ключами противны человеческой природе =)
Но учитывая, что ключом в PHP может быть что угодно, и всякие операции, когда ключи и значения меняются местами, типа array_keys или count_values являются в пхп штатными, то предложенный способ вполне можно считать подходящим.

Не говоря уже о том, что при значащих ключах поиск упрощается на порядки - isset вместо array_search. В этом смысле массив со значащими ключами и незначащими значениями куда лучше, чем обычный - со значащими значениями и ничего не значащими ключами (1,2,3).
PM MAIL   Вверх
skyboy
Дата 27.12.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



я бы довел до аболюта однотипность структуры:
Код

 [Sachsen-Anhalt] => ''
                    [Mecklenburg-Vorpommern] => ''
                    [Rheinland-Pfalz] => ''
                    [Baden-Württemberg] => Array
                        (
                            [Ulm] => Array()
                            [Rottweil] => Array()
                            [Heilbronn]=> Array()
                            [Offenburg] => Array()
                            [Mannheim] => Array()
                        )

на тот случай, если возможна вложенность больше двух. в противном случае, придется определять тип элемента при обращении: если is_array - то есть подрегионы и названием является ключ, если нет - то подрегионов нет и названием является значение... лишние условия, все же. 
ну, если вложенность надо фиксированно двухуровневая(впрочем, зарекаться никому бы не советовал - жизнь, она штука изменчивая), то можно обойтись и двумя типами элементов: с вложенным массивом и с именем города в качестве значения.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.