| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Вложенные хэши, сортировка |
| Автор: Ramirez 18.1.2005, 02:29 |
| Уважаемый 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"; } |
| Автор: chaos 18.1.2005, 08:49 | ||
чето не совсем могу вникнуть в твою проблему, вот тебе пример по тому что понял
если не то говори еще подумаем |
| Автор: Ramirez 18.1.2005, 10:14 | ||||
| Не совсем то. Попробую обьяснить подробнее. Допустим у меня есть учетные записи пользователей, каждый имеет уникальный идентификатор и кучу параметров (имя, email и пр.). Я запихиваю их в hash таким образом:
Если сказать:
то они будут выведены отсортированными по коду (ID1, ID2 ...), а мне хочется их вывести отсортированными по имени (тоесть по значению NAME)... |
| Автор: dimes 18.1.2005, 10:39 | ||
|
| Автор: Ramirez 18.1.2005, 10:57 |
| 2dimes: блин, и правда сортирует! А вот если по 2-м полям сортировать сразу? |
| Автор: dimes 18.1.2005, 12:17 | ||||
Но правильнее наверное будет свою функцию использывать... |
| Автор: GoodBoy 19.1.2005, 15:47 | ||||
тут можно сделать так:
|
| Автор: dimes 19.1.2005, 16:31 |
| GoodBoy ???? Мой пример не рабочий или твой более правильный? |
| Автор: Ramirez 19.1.2005, 20:53 | ||
Рабочий, рабочий! Подтверждаю |
| Автор: GoodBoy 20.1.2005, 14:02 | ||
Идеологию Перла помнишь??? |
| Автор: dimes 20.1.2005, 14:47 | ||
А то |
| Автор: GoodBoy 20.1.2005, 14:57 |
| dimes ну тогда сам понимаешь, что оба варианта - равноценны! :-)))) |
| Автор: dimes 20.1.2005, 16:45 |
| Неа Мой короче и масштабируемее |
| Автор: GoodBoy 20.1.2005, 17:55 |
| dimes дык и мой - масштабируемый!!! |
| Автор: korob2001 21.1.2005, 03:29 |
| GoodBoy и dimes ;)))))) Ваши примеры, оба рабочие и ничего удивительного здесь нет. Только не ссорьтесь. ;))))))) |
| Автор: dimes 21.1.2005, 11:12 |
| |
| Автор: GoodBoy 21.1.2005, 13:37 |
| korob2001 Дык никто и не ссорится!!!!!! Тут пытается родиться истинна!!!! :-)))))))))))) |