2013年3月7日木曜日

連想配列(ハッシュ)をキー順にソート

ハッシュをキー順にソートするには、以下のようにします。


%hash = (
'D' => 4,
'E' => 9,
'C' => 1,
'A' => 5,
'B' => 8,
);


@sorted_key = sort { $a cmp $b } keys %hash; # ハッシュをキーの昇順にソート

foreach $aKey(@sorted_key) {
print "[$aKey]:$hash{$aKey}\n";
}


結果は以下のようになります。


[A]:5
[B]:8
[C]:1
[D]:4
[E]:9



注意が必要なのは、連想配列自体に順序があるわけではないので、連想配列の中身の順序が変わるわけではないということです。
ソートするのはあくまでもキーについてだけです。

0 件のコメント:

コメントを投稿