Universal two-dimensional array sorting algorithm functions
Reprint address: http://blog.qita.in /? Posting = 468
- // Two-dimensional array sorting. $ arr indicates data, $ keys indicates the key value of sorting, $ order indicates sorting rules, 1 indicates ascending, and 0 indicates descending.
- Function array_sort ($ arr, $ keys, $ order = 0 ){
- If (! Is_array ($ arr )){
- Return false;
- }
- $ Keysvalue = array ();
- Foreach ($ arr as $ key => $ val ){
- $ Keysvalue [$ key] = $ val [$ keys];
- }
- If ($ order = 0 ){
- Asort ($ keysvalue );
- } Else {
- Arsort ($ keysvalue );
- }
- Reset ($ keysvalue );
- Foreach ($ keysvalue as $ key => $ vals ){
- $ Keysort [$ key] = $ key;
- }
- $ New_array = array ();
- Foreach ($ keysort as $ key => $ val ){
- $ New_array [$ key] = $ arr [$ val];
- }
- Return $ new_array;
- }
- // Eg
- $ Arr = array ('0' => array ('a' => 2, 'B' => 4, 'C' => 3 ),
- '1' => array ('a' => 45, 'B' => 3, 'C' => 3 ),
- '2' => array ('a' => 2, 'B' => 7, 'C' => 3 ),
- );
- $ New_array = array_sort ($ arr, 'A', 0 );
- Print_r ($ new_array );
|