« ハッシュのキーを逆順にソート(並べ替え)する | メイン | 配列(リスト)から重複を取り除く »

カテゴリー:ハッシュ(連想配列) 

ハッシュの値でソート(並べ替え)する

このエントリーを含むはてなブックマーク  livedoorクリップ  ハッシュの値でソート(並べ替え)するをdel.icio.usに追加  ハッシュの値でソート(並べ替え)するをYahoo!ブックマークに追加  ハッシュの値でソート(並べ替え)するをニフティクリップに追加

ハッシュのキーでソートするのは、さほど難しくないが、値で並べ替えるにはどうすればよいだろう?同様にsort関数を用いれば良い。
;#
;#ハッシュを値でソートして表示
;#

#------------------------------#
#初期化する
#------------------------------#
%hash = (
      'A' => '1_オレンジ'
    , 'B' => '4_りんご'
    , 'C' => '2_マスカット'
    , 'D' => '3_バナナ'

);

#------------------------------#
#値で並べ替えて表示
#------------------------------#
foreach my $name (sort { $hash{$a} <=> $hash{$b} } keys %hash){
	print "$name,$hash{$name}\n";
}


○実行結果
A,1_オレンジ
C,2_マスカット
D,3_バナナ
B,4_りんご


逆順に(反転して)表示したければ、「sort { $hash{$b} <=> $hash{$a} }」とすればよい。数値として比較を行いたいのなら「<=>」の部分を「cmp」にする。




トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/603

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

VPSレンタルサーバー




クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.