But got this:my @names_and_rates = map { [ $_->{name}[0], $_->{data}[0] ],[ $_- +>{name}[1], $_->{data}[1] ] } @alldata; @maxref = sort { $b->[1] <=> $a->[1] } @names_and_rates; foreach (@maxref[0 .. 2] ) { print $_->[0], "\t\t", $_->[1]*8, "\n +<BR>"; }
file rate
384434.306056
191966.35544
122524.077608
So clearly I'm missing the {name} parameter. So, I figured what I needed to do was flatten out the @alldata array a bit. I used this:..And it worked!my @maxtmp = sort { $b->{data} <=> $a->{data} } @alldata; my @names_and_rates = map { [ $_->{name}, $_->{data}->[0] ],[ $_-> +{name}, $_->{data}->[1] ] } @maxtmp; @maxref = sort { $b->[1] <=> $a->[1] } @names_and_rates; foreach (@maxref[0 .. 2] ) { print $_->[0], "\t\t", $_->[1]*8, "\n +<BR>"; }
my @names_and_rates = map { [ $_->{name}, $_->{data}->[0] ],[ $_-> +{name}, $_->{data}->[1] ] } @alldata; @maxref = sort { $b->[1] <=> $a->[1] } @names_and_rates; #this next bit just prints the top three foreach (@maxref[0 .. 2] ) { print $_->[0], "\t\t", $_->[1]*8, "\n +<BR>"; }
In reply to Ooooo so Close...
by Clownburner
in thread Help with multidimensional sorting on arrays of hashed arrays
by Clownburner
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |