sort multidimensional arrays by field specified.
specify the key by which you want your multiarray sorted.

array multi sort” makes use of the built-in PHP functions strcmp( ), count( ), is_numeric( ), in_array( ), range( ) and usort( ).

01 <?php
02 
03 // demo array to sort
04 $array_to_sort = array(
05                     array('Paul','Allan','25','user'),
06                     array('Fred','Kruger','13','moderator'),
07                     array('Anna','Sweet','58','user'),
08                     array('John','Doe','69','user'),
09                     array('Cindy','Heller','29','moderator'),
10                 );
11  
12 // specify the default field to sort
13 $sort_field = 1;
14  
15 // compare function
16 function cmpi($a, $b)
17 {
18     global $sort_field;
19     return strcmp($a[$sort_field], $b[$sort_field]);
20 }
21  
22 // display sorting options
23 $sort_num = count($array_to_sort[0]);
24 $array_num = count($array_to_sort);
25  
26 if(isset($_GET['sort']) 
27     && is_numeric($_GET['sort']) 
28     && in_array($_GET['sort'],range(0,$sort_num)))
29 {
30     $sort_field = $_GET['sort'];
31 }
32 echo '
33 <ul style="list-style: none; padding: 0.5em;">';
34 for($i = 0; $i < $sort_num; $i++)
35 {
36     echo ($i != $sort_field ? '
37     <li><a href="./?sort='.$i.'">sort by '.($i+1).'. field</a></li>' : '
38     <li><strong>currently sorted by '.($i+1).'. field</strong></li>');
39 }
40 echo '
41 </ul>';
42  
43 // do the array sorting
44 usort($array_to_sort, 'cmpi');
45  
46 // demo output
47 echo '
48 <table style="width: 30em; 
49     border: 0.1em solid #eee; 
50     border-collapse: collapse; 
51     margin: 1em 0;
52     padding: 0.2em;">';
53 for($i = 0; $i < $array_num; $i++)
54 {
55     echo '
56     <tr>';
57     for($x = 0; $x < $sort_num; $x++)
58     {
59         echo '
60         <td>'.$array_to_sort[$i][$x].'</td>';
61     }
62     echo '
63     </tr>';
64 }
65 echo '
66 </table>';
67  
68 ?>