maxyudin

Sort two-dimensional array

Jan 14th, 2012
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.70 KB | None | 0 0
  1. /* http://stackoverflow.com/a/4230273 (see accepted answer too!) */
  2. /* PHP 5.3 required */
  3.  
  4. /*
  5. Can use multiple arguments, for example: sort_multi_array($my_array, 'column_1', 'column_2');
  6. */
  7.  
  8. function sort_multi_array($array, $key)
  9. {
  10.   $keys = array();
  11.   for ($i=1;$i<func_num_args();$i++) {
  12.     $keys[$i-1] = func_get_arg($i);
  13.   }
  14.  
  15.   // create a custom search function to pass to usort
  16.   $func = function ($a, $b) use ($keys) {
  17.     for ($i=0;$i<count($keys);$i++) {
  18.       if ($a[$keys[$i]] != $b[$keys[$i]]) {
  19.         return ($a[$keys[$i]] < $b[$keys[$i]]) ? -1 : 1;
  20.       }
  21.     }
  22.     return 0;
  23.   };
  24.  
  25.   usort($array, $func); // use uasort() to maintain index association
  26.  
  27.   return $array;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment