scriptshooks 发表于 2018-06-13 14:20

求数组@k,里面重复元素的次数,并按照 @v数组排序


      
    @k=qw/b013 c014 a012 a012 b013/;

    @v=qw/a012 b013 c014/;

    求数组@k,里面重复元素的次数,并按照 @v数组排序
哪位能帮忙看看呢,先谢啦

523066680 发表于 2018-06-13 15:27

my @k = qw/b013 c014 a012 a012 b013/;
my @v = qw/a012 b013 c014/;
my %count;

grep { $count{$_}++ } @k;

for my $k (@v)
{
    printf "%s times: %d\n", $k, $count{$k};
}

asthman 发表于 2018-06-13 17:57

记数用hash

@k=qw/b013 c014 a012 a012 b013/;
@v=qw/a012 b013 c014/;

my %count;
foreach my $key ( @k ) {
    $count{$key}++;
}

foreach my $key ( @v ) {
    print "key: $key, count: $count{$key}\n";
}

scriptshooks 发表于 2018-06-13 20:58

感谢 asthman 大神的解答,学习涨知识了,想意思下的但是微信签名错误,不知道为啥
页: [1]
查看完整版本: 求数组@k,里面重复元素的次数,并按照 @v数组排序