Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: How to get Keys from hash having same value?

by ikegami (Pope)
on Jan 07, 2008 at 09:57 UTC ( #660790=note: print w/replies, xml ) Need Help??


in reply to How to get Keys from hash having same value?

If you're going to do this repeatedly (e.g. first find all the keys with value 'a', then find all keys with value 'b', etc.), then it might help to create a hash that maps the values to keys.
my %val_by_key = ( 1 => 'a', 2 => 'b', 3 => 'a', 4 => 'c', ); my %keys_by_val foreach my $k (keys %vals_by_key) { my $v = $vals_by_key{$k}; push @{ $keys_by_val{$v} }, $k; } # a: 1, 3 print('a: ', join(', ', @{$keys_by_val{'a'}}), "\n"); # a: 1, 3 # b: 2 # c: 4 foreach my $v (keys %keys_by_val) { print("$v: ", join(', ', @{$keys_by_val{$v}}), "\n"); }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://660790]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2020-11-25 03:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?