/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
"Sortering" af hash pga. værdi, ikke nø
Fra : Steen Suder, privat


Dato : 13-04-04 10:52

Det er sikkert simpelt, men jeg er helt blank her...

Jeg har et lille "tælleværk" i form af en simpel hash, hvis nøgle er
unik (dah! . Den tilhørende værdi er i sagens natur ikke unik.

Nu vil jeg gerne have et output af denne hash, som er sorteret på værdi
(til en lille hitliste) og ikke nøgle (for dét ville være nemt)

Hvordan gør man det nemt/elegant?

--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Det er ikke en skam at stave ordentligt og
formulere sig, så andre kan læse og forstå hvad du skriver.

 
 
Peter Makholm (13-04-2004)
Kommentar
Fra : Peter Makholm


Dato : 13-04-04 11:01

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> Nu vil jeg gerne have et output af denne hash, som er sorteret på
> værdi (til en lille hitliste) og ikke nøgle (for dét ville være nemt)

@sorted_keys = sort { $hash{$a} <=> $hash{$b} } keys %hash;
for $key (@sorted_keys) {
print $hash{$key};
}


Eller

print %hash{$_} for sort { $hash{$a} <=> $hash{$b} } keys %hash;

--
Peter Makholm | I laugh in the face of danger. Then I hide until
peter@makholm.net | it goes away
http://hacking.dk | -- Xander

Lars Balker Rasmusse~ (13-04-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 13-04-04 11:01

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:
> Det er sikkert simpelt, men jeg er helt blank her...
>
> Jeg har et lille "tælleværk" i form af en simpel hash, hvis nøgle er
> unik (dah! . Den tilhørende værdi er i sagens natur ikke unik.
>
> Nu vil jeg gerne have et output af denne hash, som er sorteret på
> værdi (til en lille hitliste) og ikke nøgle (for dét ville være nemt)
>
> Hvordan gør man det nemt/elegant?

my %hash = qw/hest 3 foo 17 bar 11/;
my @keys = sort { $hash{$b} <=> $hash{$a} } keys %hash;
for (@keys) {
print "$_: $hash{$_}\n";
}
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Tore Aursand (13-04-2004)
Kommentar
Fra : Tore Aursand


Dato : 13-04-04 12:59

On Tue, 13 Apr 2004 11:51:42 +0200, Steen Suder, privat wrote:
> Det er sikkert simpelt, men jeg er helt blank her...

Dokumentasjonen er din venn:

perldoc -q sort


--
Tore Aursand <tore@aursand.no>
"Writing is a lot like sex. At first you do it because you like it.
Then you find yourself doing it for a few close friends and people you
like. But if you're any good at all, you end up doing it for money."
-- Unknown

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste