gpt4 book ai didi

arrays - 根据第二个数组的元素对数组进行排序

转载 作者:行者123 更新时间:2023-12-04 13:19:47 26 4
gpt4 key购买 nike

假设我有两个如下所示的数组:

('1', '6', '8', '4', '5')
('a', 'c', 'd', 'f', 'w')

我想对第一个数组进行排序,第二个数组中元素的顺序应该和第一个数组一样,所以两者的顺序变成如下:
('1', '4', '5', '6', '8')
('a', 'f', 'w', 'c', 'd')

关于如何在 Perl 中做到这一点的任何想法?

最佳答案

您需要将索引排序到数组中。像这样

use strict;
use warnings;

my @aa = qw/ 1 6 8 4 5 /;
my @bb = qw/ a c d f w /;

my @idx = sort { $aa[$a] <=> $aa[$b] } 0 .. $#aa;

@aa = @aa[@idx];
@bb = @bb[@idx];

print "@aa\n";
print "@bb\n";

输出
1 4 5 6 8
a f w c d

关于arrays - 根据第二个数组的元素对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397627/

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