![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
Уважаемый All!
Помогите написать алгоритм (или хоть намекните), который сортирует структуру из вложенных хешей по внутренним ключам. Например, есть структура типа: $hash{key1}{key2} = value вот пример: $hash{a}{name} = "aaa"; $hash{b}{name} = "bbb"; $hash{c}{name} = "ccc"; Так вот я хочу ее отсортировать по значениям key2. Тоесть чтобы первые ключи шли не как a,b,c а согласно стортировке по занчению name. И что-то никак не соображу как... Варианты типа: foreach $key (sort { $hash{$a} cmp $hash{$b} } keys %hash) { } тут видимо не прокатывают... Цель всего этого, потом вывести при помощи foreach: foreach (keys %hash) { print $hash{$_}{name}."\n"; } Это сообщение отредактировал(а) Ramirez - 18.1.2005, 03:10 |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 3 Всего: 44 |
чето не совсем могу вникнуть в твою проблему, вот тебе пример по тому что понял
если не то говори еще подумаем |
|||
|
||||
| Ramirez |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
Не совсем то. Попробую обьяснить подробнее. Допустим у меня есть учетные записи пользователей, каждый имеет уникальный идентификатор и кучу параметров (имя, email и пр.).
Я запихиваю их в hash таким образом:
Если сказать:
то они будут выведены отсортированными по коду (ID1, ID2 ...), а мне хочется их вывести отсортированными по имени (тоесть по значению NAME)... Это сообщение отредактировал(а) Ramirez - 18.1.2005, 10:15 |
||||
|
|||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
|
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
2dimes: блин, и правда сортирует!
А вот если по 2-м полям сортировать сразу? |
|||
|
||||
| dimes |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
Но правильнее наверное будет свою функцию использывать... |
||||
|
|||||
| GoodBoy |
|
||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
тут можно сделать так:
|
||||
|
|||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
GoodBoy
???? Мой пример не рабочий или твой более правильный? |
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
Рабочий, рабочий! Подтверждаю |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
Идеологию Перла помнишь??? |
|||
|
||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
А то Это сообщение отредактировал(а) dimes - 20.1.2005, 14:51 |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
dimes
ну тогда сам понимаешь, что оба варианта - равноценны! :-)))) |
|||
|
||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
Неа
Мой короче и масштабируемее |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
dimes
дык и мой - масштабируемый!!! |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
GoodBoy и dimes ;)))))) Ваши примеры, оба рабочие и ничего удивительного здесь нет. Только не ссорьтесь. ;)))))))
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
|
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
korob2001
Дык никто и не ссорится!!!!!! Тут пытается родиться истинна!!!! :-)))))))))))) |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |