cgicorner.ch

Informationen rund um Perl/CGI

Sie sind hier: Home > Knowledge Base > Hash sortieren (nach Name und Inhalt)

Hash sortieren (nach Name und Inhalt)

Der Hash %hash soll alle beinhalteten Schlüssel und Werte nach Name oder Inhalt sortiert ausgeben.

Inhalt:

$hash{"Hans"} = 3;
$hash{"Fritz"} = 1;
$hash{"Heinz"} = 4;
$hash{"Albert"} = 5;
$hash{"Tom"} = 2;

sortiert nach Name<:

foreach (sort keys(%hash)) {
  print "$_ - $hash{$_}\n";
}

Ausgabe:
Albert - 5
Fritz - 1
Hans - 3
Heinz - 4
Tom - 2

sortiert nach numerischem Inhalt:

foreach (sort {$hash{$a} <=> $hash{$b}} (keys(%hash))) {
  print "$_ - $hash{$_}\n";
}

Ausgabe:
Fritz - 1
Tom - 2
Hans - 3
Heinz - 4
Albert - 5

Mit {$hash{$b} <=> $hash{$a}} wird absteigend sortiert.

sortiert nach alphanumerischem Inhalt:

Dazu neue Eingabedaten

$hash{"Hans"} = "Meier";
$hash{"Fritz"} = "Mueller";
$hash{"Heinz"} = "Schmid";
$hash{"Albert"} = "Binz";
$hash{"Tom"} = "Zeus";

Sortierte Ausgabe mit folgendem Befehl;

foreach (sort {$hash{$a} cmp $hash{$b}} (keys(%hash))) {
  print "$_ - $hash{$_}\n";
}

Ausgabe:
Albert - Binz
Hans - Meier
Fritz - Mueller
Heinz - Schmid
Tom - Zeus

Mit {$hash{$b} cmp $hash{$a}} wird absteigend sortiert.

Autor: Jürg Sommer, knowledge@cgicorner.ch

[ zurück ]