slayven has asked for the wisdom of the Perl Monks concerning the following question:
to this:%{array[0]} = { key1 => 1, key2 => 4 }; %{array[1]} = { key3 => 8, key4 => 4, key5 => 6 }; %{array[2]} = { key6 => 3 };
well, it works with this:%{array[0]} = { key6 => 3 }; %{array[1]} = { key3 => 8, key4 => 1, key5 => 6 }; %{array[2]} = { key1 => 1, key2 => 24 };
but i believe there must be an easier waysub SortArrayOfHashes { my @array = @{(shift)} ; my %valuesum; foreach my $i (0 .. $#array) { my $sum = 0; $sum += $_ foreach (values %{$array[$i]}); $valuesum{$i} = $sum; } my @sortedarray; foreach ( sort {$valuesum{$a} <=> $valuesum{$b} } keys %valuesum ) + { push (@sortedarray, $array[$_]); } return @sortedarray; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: sorting an array of hashes by values but ...
by chromatic (Archbishop) on Feb 08, 2001 at 00:08 UTC | |
by slayven (Pilgrim) on Feb 08, 2001 at 23:19 UTC | |
|
(tye)Re: sorting an array of hashes by values but ...
by tye (Sage) on Feb 08, 2001 at 00:07 UTC | |
|
Re: sorting an array of hashes by values but ...
by slayven (Pilgrim) on Feb 07, 2001 at 23:58 UTC |