gpt4 book ai didi

Linux Perl : How to simply arrange content of an array

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:26 25 4
gpt4 key购买 nike

我读了很多指南,也许我只是不明白。

我有一个字符串并将其转换为数组。现在我需要根据最后一列按降序排列其内容。这是我的数组在“字符串 View ”中的样子:

   @array = [

Machine1, 01/02/2016, 02/01/2016, 26

Machine2, 02/01/2016, 02/01/2016, 1

Machine3, 02/01/2016, 02/01/2016, 78

]

在此数组中,整个 “Machine1, 01/02/2016, 02/01/2016, 26” 被视为数组中的整个字符串,并基于最后一列(我认为):26, 1, 78 <- 我希望可以按降序排序:78, 26, 1。

抱歉这个幼稚的问题。

提前致谢。

最佳答案

array of arrays 时,从字符串数组开始并不理想。会更好,但我们可以通过 split 来处理它- 将每个字符串分解为其组成部分。然后我们就对您感兴趣的元素进行排序,而鲍勃是您的叔叔。

use strict;
use warnings;

use Data::Dump;

my @array = (
'Machine1, 01/02/2016, 02/01/2016, 26',
'Machine2, 02/01/2016, 02/01/2016, 1',
'Machine3, 02/01/2016, 02/01/2016, 78',
);

@array = sort { $b->[3] <=> $a->[3] }
map { [ split(/,\s*/) ] }
@array;

dd(\@array);

输出:

[
["Machine3", "02/01/2016", "02/01/2016", 78],
["Machine1", "01/02/2016", "02/01/2016", 26],
["Machine2", "02/01/2016", "02/01/2016", 1],
]

如果需要保留数据的原始格式,可以使用 Schwartzian transform :

@array = map  { $_->[0] }
sort { $b->[1] <=> $a->[1] }
map { [ $_, (split(/,\s*/))[3] ] }
@array;

结果:

[
"Machine3, 02/01/2016, 02/01/2016, 78",
"Machine1, 01/02/2016, 02/01/2016, 26",
"Machine2, 02/01/2016, 02/01/2016, 1",
]

关于Linux Perl : How to simply arrange content of an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com