簡體   English   中英

Perl:哈希值后的數組排序

[英]Perl: Sort Array after a Hash-value

在哈希值之后,是否有一種“ Perl-ish”方式對哈希數組進行排序?

my @l = ({k1 => "1", k2 => "one"}, {k1 => "2", k2 => "two"}, 
     {k1 => "3", k2 => "three"});

foreach (@l)
{
  print "\n" . $_->{k1} . ", " . $_->{k2};
}

我得到的順序就是我插入的順序(還有其他什么...)。 但我想將其按哈希值排序。 我可以想象算法的方式。 但是我要問的是一個可能已經存在的功能。

謝謝!

要按k1鍵后面的值排序,可以執行以下操作。

my @sorted = sort { $a->{k1} <=> $b->{k1} } @l;

變量$a$b保留為sort特殊變量。 如果列表項是引用,則可以按原樣使用它們。

輸出數據::打印機

[
    [0] {
        k1   1,
        k2   "one"
    },
    [1] {
        k1   2,
        k2   "two"
    },
    [2] {
        k1   3,
        k2   "three"
    }
]

@list = sort { $a->{'k1'} <=> $b->{'k1'} } @l;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM