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

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

ユーザ用ツール


perl:hash_sortkey

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

perl:hash_sortkey [2017/12/14 20:18]
perl:hash_sortkey [2020/06/23 14:10] (現在)
行 1: 行 1:
 +====== ハッシュのキーでソートする - Perl ======
 +~~socialite~~
 +<note important>この記事は2007年03月06日に書かれた物です</note>
 +
 +ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。
 +以下はハッシュのキーを文字列としてソートする方法になる。
 +
 +===== サンプル(文字列) =====
 +<code perl>
 +;#
 +;#ハッシュをソートして表示(文字としてソート)
 +;#
 +
 +#------------------------------#
 +#初期化する
 +#------------------------------#
 +%hash = (
 +      'orange' => 'オレンジ'
 +    , 'apple'  => 'りんご'
 +    , 'muscat' => 'マスカット'
 +    , 'banana' => 'バナナ'
 +);
 +
 +#------------------------------#
 +#並べ替えて表示
 +#------------------------------#
 +foreach my $name ( sort keys %hash ){
 + print "$name,$hash{$name}\n";
 +}
 +</code>
 +
 +===== 実行結果 =====
 +<code>
 +apple,りんご
 +banana,バナナ
 +muscat,マスカット
 +orange,オレンジ
 +</code>
 +
 +
 +もし、数値としてハッシュのキーをソートしたいなら次のように書く。
 +===== サンプル(数値) =====
 +<code perl>
 +;#
 +;#ハッシュをソートして表示(数値としてソート)
 +;#
 +
 +#------------------------------#
 +#初期化する
 +#------------------------------#
 +%hash = (
 +      '3' => 'オレンジ'
 +    , '4'  => 'りんご'
 +    , '1' => 'マスカット'
 +    , '2' => 'バナナ'
 +
 +);
 +
 +#------------------------------#
 +#並べ替えて表示
 +#------------------------------#
 +foreach my $name ( sort { $a <=> $b } keys %hash ){
 + print "$name,$hash{$name}\n";
 +}
 +</code>
 +
 +===== 実行結果 =====
 +<code>
 +1,マスカット
 +2,バナナ
 +3,オレンジ
 +4,りんご
 +</code>
 +
 +
 +===== 関連書籍 =====
 +{{amazon>jp:4873113008}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:4798139815}}
 +<html><p style="clear:both"></p></html>
 +
 +{{tag>CGI・Perl例文集 Perl 連想配列 ハッシュ }}
 +~~socialite~~
  

関連ページ