Given a multi dimensional, what is the best way to sort the array
numerically?
eg:
@array = ( [5,7,2],[9,4,8],[1,6,3]);
after sort results= ( [1,2,3],[4,5,6],[7,8,9] );
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.
#!/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);