从multidimension数组perl中删除常用值

时间:2015-06-11 10:59:16

标签: perl

我想从数组中删除公共元素。例如:

array1 =
[
{'id'=>78597,'data'=>'great'}
 ];

array2=
[
{'id'=>78345,'data'=>'first'},{'id'=>78597,'data'=>'great'},
{'id'=>78355,'data'=>'second'}
]

现在,密钥ID '78597'在两个数组中都很常见 现在我想根据键'id'从array2中删除该元素。我提到的所有单一维度的例子。

1 个答案:

答案 0 :(得分:4)

您可以构建%seen哈希查找并过滤@$array2

my %seen;
@seen{ map $_->{id}, @$array1 } = ();

@$array2 = grep { !exists $seen{$_->{id}} } @$array2;