Sorting an multidimensional array


/ Published in: PHP
Save to your folder(s)

The following shoud do it. pass the array, index is what element you want to sort on (in your case use 3). Then you can sort asc or desc, and weather you want to use natural sorting (the way a human would sort, 2 before 10) and lastly case sensitive or not if using natural sort. Only the first 2 args are needed, the rest will default.


Copy this code and paste it in your HTML
  1. function sort2d ($array, $index, $order='asc', $natsort=FALSE, $case_sensitive=FALSE)
  2. {
  3. if(is_array($array) && count($array)>0)
  4. {
  5. foreach(array_keys($array) as $key)
  6. $temp[$key]=$array[$key][$index];
  7. if(!$natsort)
  8. ($order=='asc')? asort($temp) : arsort($temp);
  9. else
  10. {
  11. ($case_sensitive)? natsort($temp) : natcasesort($temp);
  12. if($order!='asc')
  13. $temp=array_reverse($temp,TRUE);
  14. }
  15. foreach(array_keys($temp) as $key)
  16. (is_numeric($key))? $sorted[]=$array[$key] : $sorted[$key]=$array[$key];
  17. return $sorted;
  18. }
  19. return $array;
  20. }

URL: http://www.codingforums.com/showthread.php?t=71904

Report this snippet


Comments


You need to login to view comments.