昨天要排序数组的时候发现了,要按时间排序,但是php并没有内设这个函数,所以在网上找到了这个代码,第一个参数为数组,第二个是要排序的元素,第三个为排序方式,
 
下面就是php 二维数组排序的代码
function arraySort($arr, $keys, $type = 'asc') {
         $keysvalue = $new_array = array();
         foreach ($arr as $k => $v){
             $keysvalue[$k] = $v[$keys];
         }
         $type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
         reset($keysvalue);
         foreach ($keysvalue as $k => $v) {
            $new_array[$k] = $arr[$k];
         }
         return $new_array;
     }
$arr[] = array("name"=>"1","time"=>1) ;
array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数。
  
    function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){   
        if(is_array($arrays)){   
            foreach ($arrays as $array){   
                if(is_array($array)){   
                    $key_arrays[] = $array[$sort_key];   
                }else{   
                    return false;   
                }   
            }   
        }else{   
            return false;   
        }  
        array_multisort($key_arrays,$sort_order,$sort_type,$arrays);   
        return $arrays;   
    }  
  
    $person =  array(  
                    array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),  
                    array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150),  
                    array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156),  
                    array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190),  
                    array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200),  
                    array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110),  
                    array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170)  
                );  
      
    var_dump($person);  
      
    $person = my_sort($person,'name',SORT_ASC,SORT_STRING);  
  
    var_dump($person);  
      
    $person = my_sort($person,'weight');  
  
    var_dump($person);  
?> 
结果如下:
 array (size=7)
  0 => 
    array (size=4)
      'id' => int 1
      'name' => string 'fj' (length=2)
      'weight' => int 100
      'height' => int 180
  1 => 
    array (size=4)
      'id' => int 2
      'name' => string 'tom' (length=3)
      'weight' => int 53
      'height' => int 150
  2 => 
    array (size=4)
      'id' => int 3
      'name' => string 'jerry' (length=5)
      'weight' => int 120
      'height' => int 156
  3 => 
    array (size=4)
      'id' => int 4
      'name' => string 'bill' (length=4)
      'weight' => int 110
      'height' => int 190
  4 => 
    array (size=4)
      'id' => int 5
      'name' => string 'linken' (length=6)
      'weight' => int 80
      'height' => int 200
  5 => 
    array (size=4)
      'id' => int 6
      'name' => string 'madana' (length=6)
      'weight' => int 95
      'height' => int 110
  6 => 
    array (size=4)
      'id' => int 7
      'name' => string 'jordan' (length=6)
      'weight' => int 70
      'height' => int 170
array (size=7)
  0 => 
    array (size=4)
      'id' => int 4
      'name' => string 'bill' (length=4)
      'weight' => int 110
      'height' => int 190
  1 => 
    array (size=4)
      'id' => int 1
      'name' => string 'fj' (length=2)
      'weight' => int 100
      'height' => int 180
  2 => 
    array (size=4)
      'id' => int 3
      'name' => string 'jerry' (length=5)
      'weight' => int 120
      'height' => int 156
  3 => 
    array (size=4)
      'id' => int 7
      'name' => string 'jordan' (length=6)
      'weight' => int 70
      'height' => int 170
  4 => 
    array (size=4)
      'id' => int 5
      'name' => string 'linken' (length=6)
      'weight' => int 80
      'height' => int 200
  5 => 
    array (size=4)
      'id' => int 6
      'name' => string 'madana' (length=6)
      'weight' => int 95
      'height' => int 110
  6 => 
    array (size=4)
      'id' => int 2
      'name' => string 'tom' (length=3)
      'weight' => int 53
      'height' => int 150
array (size=7)
  0 => 
    array (size=4)
      'id' => int 2
      'name' => string 'tom' (length=3)
      'weight' => int 53
      'height' => int 150
  1 => 
    array (size=4)
      'id' => int 7
      'name' => string 'jordan' (length=6)
      'weight' => int 70
      'height' => int 170
  2 => 
    array (size=4)
      'id' => int 5
      'name' => string 'linken' (length=6)
      'weight' => int 80
      'height' => int 200
  3 => 
    array (size=4)
      'id' => int 6
      'name' => string 'madana' (length=6)
      'weight' => int 95
      'height' => int 110
  4 => 
    array (size=4)
      'id' => int 1
      'name' => string 'fj' (length=2)
      'weight' => int 100
      'height' => int 180
  5 => 
    array (size=4)
      'id' => int 4
      'name' => string 'bill' (length=4)
      'weight' => int 110
      'height' => int 190
  6 => 
    array (size=4)
      'id' => int 3
      'name' => string 'jerry' (length=5)
      'weight' => int 120
      'height' => int 156
这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了