#!/usr/bin/perl use strict; use warnings; my @item_array = ([1, 2, 20], [2, 3, 15], [3,4,3], [4, 5, 17], [5,6,28], [6,1,23], [1, 7, 1], [2, 7, 4], [3, 7, 9,], [4, 7, 16], [5, 7, 25], [6, 7, 36], ); my @sorted_array = sort { $a->[2] <=> $b->[2] } @item_array; for (@sorted_array) { print join("\t", @$_), "\n"; }
Outputs:
1 7 1 3 4 3 2 7 4 3 7 9 2 3 15 4 7 16 4 5 17 1 2 20 6 1 23 5 7 25 5 6 28 6 7 36
Note I copied/pasted the sort. As well, note that curly brackets are used in hash references, square brackets in array references, and parentheses in list construction. See perlreftut.
Are you sure that your array contains what you think it contains? See How can I visualize my complex data structure?. The short answer is is use Data::Dumper to make sure your array contains what you think it does: use Data::Dumper; print Dumper \@item_array;
In reply to Re: Sort multidimensional array by third item
by kennethk
in thread Sort multidimensional array by third item
by rosalindwills
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |