CGI-BBS > CGI > Perl > Perlについてハッシュの配列をソートしたい。


カレッヂ
カレッヂ


質問者 うむむ  投稿日 2004/11/28(日) 19:11:19
題名の通りなのですが、例えば

@a = (
	{'c' => "mixa",'time' => 1}, 
	{'c' => "fox",'time' => 3}, 
	{'c' => "miaa",'time' => 2}
);

このようなハッシュの配列を、timeにてソートしたいのですが

$a[0]{'time'} が 1
$a[1]{'time'} が 3
$a[2]{'time'} が 2

なのを

$a[0]{'time'} が 1
$a[1]{'time'} が 2
$a[2]{'time'} が 3

として、c側もこれについてくる

$a[0]{'c'} が mixa
$a[1]{'c'} が miaa
$a[2]{'c'} が fox

このような結果になるソースを知りたいです。なるべくスマートに書ければ嬉しいです。

【習熟度】(未選択)

回答者 domo  [削除]  投稿日 2004/11/29(月) 13:02:35
# 普通に sort をするだけでは?

use Data::Dumper;

@a = (
	{'c' => "mixa", 'time' => 1}, 
	{'c' => "fox",  'time' => 3}, 
	{'c' => "miaa", 'time' => 2}
);

@sort = sort { $a->{'time'} <=> $b->{'time'} } @a;
print Dumper(\@sort);

返信(回答)する

 


Web裏技