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

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

ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。 以下はハッシュのキーを文字列としてソートする方法になる。

サンプル(文字列)

;#
;#ハッシュをソートして表示(文字としてソート)
;#
 
#------------------------------#
#初期化する
#------------------------------#
%hash = (
      'orange' => 'オレンジ'
    , 'apple'  => 'りんご'
    , 'muscat' => 'マスカット'
    , 'banana' => 'バナナ'
);
 
#------------------------------#
#並べ替えて表示
#------------------------------#
foreach my $name ( sort keys %hash ){
	print "$name,$hash{$name}\n";
}

実行結果

apple,りんご
banana,バナナ
muscat,マスカット
orange,オレンジ

もし、数値としてハッシュのキーをソートしたいなら次のように書く。

サンプル(数値)

;#
;#ハッシュをソートして表示(数値としてソート)
;#
 
#------------------------------#
#初期化する
#------------------------------#
%hash = (
      '3' => 'オレンジ'
    , '4'  => 'りんご'
    , '1' => 'マスカット'
    , '2' => 'バナナ'
 
);
 
#------------------------------#
#並べ替えて表示
#------------------------------#
foreach my $name ( sort { $a <=> $b } keys %hash ){
	print "$name,$hash{$name}\n";
}

実行結果

1,マスカット
2,バナナ
3,オレンジ
4,りんご

関連書籍

Damian Conway
ISBN 4873113008
¥ 4,644

Joseph N. Hall, Joshua…
ISBN 4798139815
¥ 4,104

コメント

コメントを入力. Wiki文法が有効です:
F U K Y S