<?php/** * Sort an two-dimension array by some level, and the use Array_multisort () function. * * Syssortarray ($Array, "Key1", "Sort_asc", "Sort_retular", "Key2" ...) * @author Chunsheng Wang <wwccss@263.net> * @ param array $ArrayData the array to sort. * @param string $KeyName 1 The first item to sort by. * @param string $SortOrder 1 The order to sort by ("Sort_asc" | " Sort_desc ") * @param string $SortType 1 the Sort type (" Sort_regular "|" Sort_numeric "|" Sort_string ") * @return array sorted array. */function Syssortarray ($ArrayData, $KeyName 1, $SortOrder 1 = "Sort_asc", $SortType 1 = "Sort_regular") {if (!is_array ($ Arraydata) {return $ArrayData;} $ArgCount = Func_num_args (); for ($I = 1; $I < $ArgCount; $I + +) {$Arg = Func_get_arg ($I), if (!eregi ("SORT", $Arg)) {$KeyNameList [] = $Arg; $SortRule [ ] = ' $ '. $Arg; } else {$SortRule [] = $Arg;}} foreach ($ArrayData as $Key = + $Info) {foreach ($KeyNameList as $KeyName) {${$KeyName}[$Key] = $Info [$KeyName];}} $Ev alstring = ' Array_multisort ('. Join (",", $SortRule). ', $ArrayData); '; eval ($EvalString); return $ArrayData; }//################# Example ################# $arr = Array (' name ' = ' learning ', ' size ' = ' 1235 ', ' type ' = ' jpe ' , ' time ' = ' 1921-11-13 ', ' class ' = ' D ', ', ' Array (' name ' = ' Chinese Kung fu ', ' size ' = ' 153 ', ' type ' = ' jpe ', ' Ti Me ' = ' 2005-11-13 ', ' class ' + ' J ', ', ' Array (' name ' = ' programming ', ' size ' = ' + ', ' type ' = ' gif ', ' time ' => ; ' 1997-11-13 ', ' class ' = ' A ', ', ' Array (' name ' = ' Chinese Kung fu ', ' size ' = ' + ', ' type ' = ' jpe ', ' time ' = ' 1925- 02-13 ', ' class ' = ' D ', ', ' Array (' name ' = ' Chinese Kung fu ', ' size ' = ' 5 ', ' type ' = ' = ' icon ', ' time ' = ' 1967-12-13 ') , ' class ' = ' C ',),); Print_r ($arr); Note: When sorting by number 153:65 small $temp = Syssortarray ($arr, "Class", "Sort_asc", "type", "Sort_desc", "size", "Sort_asc", "Sort_ STRING "); echo "<pre>"; Print_r ($temp);?>