トップページ ソースコードライブラリ Borland C++ Compiler 5.5
連想配列のソート
Perlの連想配列をキーや値でソートする方法を紹介しています。
サンプルコード
%nedan = (
            "bag",        15000,
            "cup",          800,
            "watch",       6000,
            "tv",         38000,
            "camera",     25000
        );
        


print "キー(商品名)で並べ替え\n";
foreach(sort keys %nedan){
    printf "%6d = %s\n",$nedan{$_},$_;
}

print "\n値(値段)で並べ替え\n";
foreach(sort {$nedan{$a} <=> $nedan{$b}} keys %nedan){
    printf "%+6s = %6d\n",$_,$nedan{$_};
}

概要

連想配列のソートです。keys %nedanで連想配列のキーを配列として受け取ります。

あとはsort関数に渡してやります。キー名のソートの場合は単純にsort keys %nedanでソートされたキー名を得ることができます。

値でソートする場合はsort {$nedan{$a} <=> $nedan{$b}} keys %nedanとします。sortとソートの対象配列の間に{ }で囲んだ大小判断の式を入れます。$a,$bは対象配列の要素が入るのでそれを用いて比較結果を返します。ここにifなどを用いて条件判断のコードを書くことも可能です。

ナビゲーション
プログラミングは道連れ
ソースコードライブラリ
Perl
基本書式の日付取得
大文字から小文字に変換する
IPをホスト名に変換する
トップページ ソースコードライブラリ Borland C++ Compiler 5.5