如何对多维数组进行排序

时间:2014-06-14 14:18:52

标签: perl sorting

我如何通过TIME中的值对以下数组进行排序?

$VAR1 = [
          {
            'TIME' => '45',
            'PLAYER' => '',
            'TYPE' => '6'
          },
          {
            'INFO' => 'Dissent',
            'TEAMFLAG' => '1',
            'PLID' => '8570',
            'TIME' => '85',
            'PLAYER' => 'Player1',
            'TYPE' => '4'
          },
          {
            'TEAMFLAG' => '1',
            'PLID' => '8570',
            'TIME' => '35',
            'PLAYER' => 'Player1',
            'TYPE' => '1'
          },
          {
            'TEAMFLAG' => '0',
            'PLID' => '145399',
            'TIME' => '60',
            'PLAYER' => 'Player3',
            'TYPE' => '1'
          },
          {
            'TEAMFLAG' => '0',
            'PLID' => '145248',
            'TIME' => '12',
            'PLAYER' => 'Player1',
            'TYPE' => '1'
          },
          {
            'TIME' => '0',
            'PLAYER' => '',
            'TYPE' => '10'
          }
]

以上是$data->{EVENTS}->{EVENT}的一个数据转换,我需要对其进行排序,所以尝试了以下但不排序:

my @sorted =  sort { $b->{TIME} <=> $a->{TIME} } $data->{EVENTS}->{EVENT};

1 个答案:

答案 0 :(得分:1)

散列和数组元素是标量。在这种情况下,$data->{EVENTS}->{EVENT}更具特色是对数组的引用。你想要@{ $data->{EVENTS}->{EVENT} }

相关问题