• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 900
  • Last Modified:

Sorting of Multidimensional arrays

A have an array of arrays which I want to sort according to the 3rd element of each of the child arrays, how can I do that?
In the code snippet below I would like the output to be:
5,3
3,5
9,9
@array1 = (20,10,5,3,-4);
@array2 = (5,4,3,2,1);
@array3 = (10,9,8,7,6);
 
@array = ($array1,$array2,$array3);
 
@sorted = sort by_3rd @array;
 
foreach $i (0..$#array)
{
	print $array[$i][2],",",$sorted[$i],"\n";
}
 
sub by_3rd
{
???????????
}
 
Desired output:

Open in new window

0
shayb022800
Asked:
shayb022800
1 Solution
 
ozoCommented:
@array1 = (20,10,5,3,-4);
@array2 = (5,4,3,2,1);
@array3 = (10,9,8,7,6);

@array = (\@array1,\@array2,\@array3);
@sorted = sort{$a->[2] <=> $b->[2]} @array;
foreach $i (0..$#array)
{
    print $array[$i]->[2],",",$sorted[$i]->[2],"\n";
}
0
 
shayb022800Author Commented:
OZO you are indeed a genius, thanks!
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now