2012-01-28 63 views
0

嗨我一直在使用array_sort()函數發現here一段時間來排序來自多個API的結果,但現在我需要同時用兩個鍵排序。在多個鍵上的多維數組排序

的兩個鍵我需要排序是deal_score DESC和date_start DESC

此陣列的性質如下。 記錄2具有最高deal_score所以應該先 記錄0和1具有相同的deal_scoredate_start是上記錄1更高,從而導致最終的順序應該是2,1,0

下面是一個例子陣列,其具有爲了便於閱讀而進行了修剪。

 [0] => Array 
      (
       [db_id] => 414314 
       [date_start] => 2012-04-17 
       [deal_score] => 81.3 
       [deal_statements] => Array 
       (
        [0] => 49.85 
        [1] => 2.11 
       ) 
      ) 

     [1] => Array 
      (
       [db_id] => 414409 
       [date_start] => 2012-04-20 
       [deal_score] => 81.3 
       [deal_statements] => Array 
       (
        [0] => 28.2 
        [1] => 21.41 
       ) 
      ) 

     [2] => Array 
      (
       [db_id] => 1345923 
       [date_start] => 2012-04-17 
       [deal_score] => 85 
       [deal_statements] => Array 
       (
        [0] => 18.1 
        [1] => 22.16 
       ) 
      ) 

對此的任何幫助將不勝感激。

回答

4

某事像這樣應該這樣做:

foreach ($data as $key => $row) { 
    $score[$key] = $row['deal_score']; 
    $dates[$key] = $row['date_start']; 
} 

array_multisort($score, SORT_ASC, $dates, SORT_ASC, $data); 

3rd。 http://php.net/manual/en/function.array-multisort.php上的例子很好解釋它。

乾杯。