+ -
当前位置:首页 → 问答吧 → hash排序

hash排序

时间:2011-07-18

来源:互联网

本帖最后由 linux68 于 2011-07-18 11:57 编辑

一个hash表,%hash=('a'=>2,'b'=>3,'c'=>1);
相对其按值倒序排,得到%hash=('b'=>3,'a'=>2,'c'=>1);
或是得到一个这样的数组。
perl里怎么实现,谢谢!

作者: linux68   发布时间: 2011-07-18

本帖最后由 cecial 于 2011-07-18 12:23 编辑


QUOTE:
一个hash表,%hash=('a'=>2,'b'=>3,'c'=>1);
相对其按值倒序排,得到%hash=('b'=>3,'a'=>2,'c'=>1);
或是 ...
linux68 发表于 2011-07-18 11:55




    记得用比较字符<=>就可以了,具体怎么用得记得不清了,不知道对不对;
   @a= sort {$hash{$b}<=>$hash{$a}} keys %hash; #其中$a,$b控制升序或降序

作者: cecial   发布时间: 2011-07-18

  1. foreach  (sort{$hash{$a}<=>$hash{$b}} keys %hash ) {
  2. }
复制代码

作者: bernana   发布时间: 2011-07-18



QUOTE:
bernana 发表于 2011-07-18 12:21




    为什么要加个foreach ?

作者: zzx4441   发布时间: 2011-07-18