我想从数组中删除公共元素。例如:
array1 =
[
{'id'=>78597,'data'=>'great'}
];
array2=
[
{'id'=>78345,'data'=>'first'},{'id'=>78597,'data'=>'great'},
{'id'=>78355,'data'=>'second'}
]
现在,密钥ID '78597'
在两个数组中都很常见
现在我想根据键'id'
从array2中删除该元素。我提到的所有单一维度的例子。
答案 0 :(得分:4)
您可以构建%seen
哈希查找并过滤@$array2
,
my %seen;
@seen{ map $_->{id}, @$array1 } = ();
@$array2 = grep { !exists $seen{$_->{id}} } @$array2;