めも
2008/8/12 [13:18:25] (火) 

簡単なパズルで現実逃避。
データを、表示順で並べて、同じ表示順の中ではID順で並べる、てのは当たり前のありがちで、SQL文だとたぶん
order by displayorder asc, id desc
てな感じでさくっと書ける、のかな。
これをどうしたもんかとちょっと悩んで。…hashに放り込んでループすればイケる。
foreach (keys %{ $ref } ){
$pos->{ $ref->{$_}->{displayorder} }++;
$disp->{ $ref->{$_}->{displayorder} }->{$_} = 1;
}
foreach my $display ( sort {$a<=>$b;} keys %{ $pos } ){
foreach ( sort {$b<=>$a;} keys %{ $disp->{$display} } ){
print $ref->{$_};
}
}
でも、なんかダサい(死語)
並べかえたい、というのはよくあることなのに、こんな書き方してしまうと、バリエーションの数だけ同じようなことを書かなきゃいけないじゃん。…うううむ。
とはいえ、忘れないうちにメモっておこう。

