The code is as follows: |
Copy code |
Function multi_array_sort ($ multi_array, $ sort_key, $ sort = sort_asc ){ If (is_array ($ multi_array )){ Foreach ($ multi_array as $ row_array ){ If (is_array ($ row_array )){ $ Key_array [] = $ row_array [$ sort_key]; } Else { Return-1; } } } Else { Return-1; } Array_multisort ($ key_array, $ sort, $ multi_array ); Return $ multi_array; } |
Array (
Array ('id' => 1, 'data' => 'A '),
Array ('id' => 3, 'data' => 'C '),
Array ('id' => 2, 'data' => 'B ')
);
Php itself has a function for sorting multi-dimensional arrays.
The code is as follows: |
Copy code |
Bool array_multisort (array $ ar1 [, mixed $ arg [, mixed $... [, array $...]) |
Method 2
The code is as follows: |
Copy code |
<? Php // Sort two-dimensional arrays in descending order with the time inputdate as the key value Function array_sort ($ arr, $ keys, $ type ){ $ Keysvalue = array (); $ I = 0; Foreach ($ arr as $ key => $ val ){ $ Val [$ keys] = str_replace ("-", "", $ val [$ keys]); $ Val [$ keys] = str_replace ("", "", $ val [$ keys]); $ Val [$ keys] = str_replace (":", "", $ val [$ keys]); $ Keysvalue [] = $ val [$ keys]; } Asort ($ keysvalue); // Sort key values Reset ($ keysvalue); // The pointer points to the first array. Foreach ($ keysvalue as $ key => $ vals ){ $ Keysort [] = $ key; } $ New_array = array (); If ($ type! = "Asc "){ For ($ ii = count ($ keysort)-1; $ ii> = 0; $ ii --){ $ New_array [] = $ arr [$ keysort [$ ii]; } } Else { For ($ ii = 0; $ ii <count ($ keysort); $ ii ++ ){ $ New_array [] = $ arr [$ keysort [$ ii]; } } Return $ new_array; } ?> |
Method 3
The code is as follows: |
Copy code |
<? Php $ A = array ( 0 => array ("id" => 1, "name" => "", "addr" => "), 1 => array ("id" => 2, "name" => "Xiaogang", "addr" => "), 2 => array ("id" => 3, "name" => "Xiaojun", "addr" => "), 3 => array ("id" => 4, "name" => "Company", "addr" => "0: 4 "), ); Function sort_by ($ array, $ keyname = null, $ sortby ){ $ Myarray = $ inarray = array (); Foreach ($ array as $ I =>$ befree ){ $ Myarray [$ I] = $ array [$ I] [$ keyname]; } Switch ($ sortby ){ Case 'asc ': Asort ($ myarray ); Break; Case 'arsort ': Arsort ($ myarray ); Break; Case 'natcase ': Natcasesor ($ myarray ); Break; } Foreach ($ myarray as $ key => $ befree ){ $ Inarray [$ key] = $ array [$ key]; } Return $ inarray; } Print_r (sort_by ($ a, "addr", "arsort ")); Print_r ($ a [2] ["id"]); ?>
|