I can't help but think that the biggest problem is that your using the wrong data structure. From your output requirements, it seems like you need an array of hashes, rather the a hash of arrays.

To that end, the first loop will transform your described structure into what I think would be more appropriate. I've dumped the output to show how I think the data would be better structured.

Of course, if you have the option, and no other code is dependant upon the existing structure, it would be better to build it this way in the first place rather than needing to transform it.

When the data is structured this way, printing the output becomes almost trivial and requires only a simple sort method.

#! perl -sw use strict; use Data::Dumper; local $\=$/; $::X = 2 unless $::X; my %array=( Key_One =>[ 50,25,100,90], Key_Two =>[ 35,18,110,72], Key_Three =>[100,35, 99,82], ); my @columns; for my $i (0..3) { $columns[$i]->{@{$array{$_}}[$i]} = $_ for keys %array; } print Dumper(\@columns); my @names = qw(One Two Three Four); for my $column (@columns) { print $/,'Column ', shift@names; print "$column->{$_} = $_" for (sort{$b <=> $a} keys %$column)[0 . +. $::X-1]; } __DATA__ c:\test>202251 -X=2 $VAR1 = [ { '50' => 'Key_One', '35' => 'Key_Two', '100' => 'Key_Three' }, { '25' => 'Key_One', '18' => 'Key_Two', '35' => 'Key_Three' }, { '110' => 'Key_Two', '99' => 'Key_Three', '100' => 'Key_One' }, { '72' => 'Key_Two', '90' => 'Key_One', '82' => 'Key_Three' } ]; Column One Key_Three = 100 Key_One = 50 Column Two Key_Three = 35 Key_One = 25 Column Three Key_Two = 110 Key_One = 100 Column Four Key_One = 90 Key_Three = 82 c:\test>

Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!

In reply to Re: Array Sorting Trouble by BrowserUk
in thread Array Sorting Trouble by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.