gpt4 book ai didi

arrays - 在 Perl 中,如何从哈希引用数组中提取 ID 字段列表?

转载 作者:行者123 更新时间:2023-12-01 15:13:54 26 4
gpt4 key购买 nike

如何将散列数组中的每个 id 值推送到数组中?

我有这个数组:

@friends = [ 
{'id' => 1, 'last_name' => 'Fo', 'first_name' => 'fa' },
{'id' => 3, 'last_name' => 'pa', 'first_name' => 'pi' },
{'id' => 2, 'last_name' => 'ma', 'first_name' => 'mi' }
];

我想像这样创建一个值 id 数组:@friend_ids = [1, 3, 2],使用 push .

最佳答案

您可能有 @friends = ( ... ) 并且想要 @friend_ids = (1, 3, 2)。方括号用于数组引用,而不是列表。您可以像这样创建这样的数组:

#!/usr/bin/perl
use warnings;
use strict;

my @friends = ( {id => 1, last_name => 'Fo', first_name => 'fa' },
{id => 3, last_name => 'pa', first_name => 'pi' },
{id => 2, last_name => 'ma', first_name => 'mi' } );
my @friend_ids;
push @friend_ids, $_->{id} for @friends;
print "@friend_ids\n";

但是您可以更轻松地实现相同的目标:

my @friend_ids = map $_->{id}, @friends;

如果您需要删除重复项,并对键进行排序,您可以使用:

my @friend_ids = sort {$a <=> $b} uniq map $_->{id}, @friends;

如果所有的ID都是数字或者只是

my @friend_ids = sort uniq map $_->{id}, @friends;

如果某些 ID 不是数字(uniq 来自 List::MoreUtils)。

关于arrays - 在 Perl 中,如何从哈希引用数组中提取 ID 字段列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540529/

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