とあるエンジニアの闇歴史帳

コピペで使える便利Wiki ※現在構築中です。

ユーザ用ツール


サイドバー

言語

サーバ関連

ツール

API

読み物

その他

perl:hash_sortvalue

ハッシュの値でソートする - Perl

この記事は2007年03月06日に書かれた物です

ハッシュのキーでソートするのはさほど難しくないが、値で並べ替えるにはどうすればよいだろう?同様に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」にする。

関連書籍

failed to fetch data: unkown error

failed to fetch data: unkown error

関連ページ

perl/hash_sortvalue.txt · 最終更新: 2020/06/23 14:10 (外部編集)