Автор Тема: сортировка хэша  (Прочитано 2534 раз)

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

Оффлайн Timofey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
сортировка хэша
« : 09 Ноября 2001, 16:51:55 »
Есть хэш,типа
$my{1}=343;
$my{2}=3343;
$my{3}=3453;
$my{4}=3343;

как его отсортировать по значениям,так чтобы знать
клю и значение отсортированных элементов,т.е.

foreach $value(sort values %my)
{
print"$value\\n";
}

не подходит,т.к. неизвестны ключи элементов

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
так может?
« Ответ #1 : 09 Ноября 2001, 17:04:13 »
foreach my $key(sort{$my{$a}<=>$my{$b}} keys %my){
    print $key, \' => \', $my{$key};
}

по возрастанию.
по убыванию:
$my{$b}<=>$my{$a}

строковая сортировка по кодам:
$my{$a} cmp $my{$b}
 в исканиях.

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
сортировка хэша
« Ответ #2 : 09 Ноября 2001, 18:35:53 »
Hi.

tebe eto nuz\'no?

###############################
%h=(1 => 343
        ,2 => 3343
        ,3 => 3453
        ,4 => 3343);

foreach my $value (sort { $h{$a} cmp $h{$b} } keys %h){
                               print "$value -> $h{$value}\\n";
}
###############################
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
сортировка хэша
« Ответ #3 : 09 Ноября 2001, 18:38:51 »
O opozdal :)
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

 

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