2次元配列の任意の要素で配列をソート

例えば以下のような構造の2次元配列があったとする。

5 2010/11/10 アジ 刺身
4 2010/11/09 サバ 味噌煮
3 2010/11/08 アナゴ 蒲焼き
2 2010/11/07 カレイ 煮付け
1 2010/11/06 アリゲーターガー 姿焼き

*区切り文字は「<>」としておく

ここでこの配列を、魚の名前で手っ取り早くソートするにはどうしたらいいか。

要素を抜き出したり、並び替えたりするのはうざいので、以下のようにしてしまう。

2次元配列の任意の要素でソート

open(IN,"DataFileName");
 @current_array = <IN>; close(IN);	#元の配列
 @sorted_array = sort({(split "<>", $a)[2] cmp (split "<>", $b)[2]} @current_array);
これで @sorted_array にソートされた配列が格納される。

これ、あんまり解説ページとかに載ってないんだよなあ、便利なのに。

2017/08/30(水)
フエダイ釣れました(54センチ・2キロ)
2017/08/29(火)
パッとしない
2017/08/25(金)
変なの釣れたw
Keyword : 2次元配列,任意の要素,ソート,sort

CopyRight 2004 - 2017 © Nap.st all right reserved.