Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
Given a multi dimensional, what is the best way to sort the array
numerically?
eg:
I have one solutions, but it kinda defeats the purpose, it completely disassembles the array and then rebuilds it. This seems to me as this would be slow and cumbersome and also limited to square tables.@array = ( [5,7,2],[9,4,8],[1,6,3]); after sort results= ( [1,2,3],[4,5,6],[7,8,9] );
#!/usr/bin/perl use Data::Dumper; $sample= [ [5,7,2], [9,4,8], [1,6,3]]; $idx = $#$sample; for ($row=0; $row <= $idx; $row++) { if ( $#{$sample->[$row]} != $idx) {die "not a square table\n";} else { push @unsorted, @{$sample->[$row]};} } @sorted = sort { $a <=> $b } @unsorted; for ($row=0; $row <= $idx; $row++) { my $count = 0; while ($count <= $idx) { $sample->[$row][$count] = shift @sorted; $count++; } } print Dumper($sample);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Sorting multi dimensional arrays
by arturo (Vicar) on Mar 14, 2001 at 21:49 UTC | |
Re: Sorting multi dimensional arrays
by japhy (Canon) on Mar 14, 2001 at 23:11 UTC | |
(tye)Re: Sorting multi dimensional arrays
by tye (Sage) on Mar 15, 2001 at 04:12 UTC | |
by Anonymous Monk on Oct 07, 2002 at 14:14 UTC | |
by rdfield (Priest) on Oct 07, 2002 at 14:58 UTC |
Back to
Seekers of Perl Wisdom