如果我要在Perl中创建一个映射,可以像下面这样进行比较。
my %map = (
A => [qw(a b c d)],
B => [qw(c d f a)],
C => [qw(b d a e)],
);
my @keys = keys %map;
my %matches;
for my $k ( 1 .. @keys ) {
$matches{$_} |= 2**$k for @{$map{ $keys[$k-1] }};
}
for ( sort keys %matches ) {
my @found;
for my $k ( 1 .. @keys ) {
push @found, $keys[$k-1] if $matches{$_} & 2**$k;
}
print "$_ found in ", (@found? join(',', @found) : 0 ), "\n";
}
Output:
a found in A,C,B
b found in A,C
c found in A,B
d found in A,C,B
e found in C
f found in B
我想了解在php中实现此操作的最佳性能和效率方法。