2012-01-28 77 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上的例子很好解释它。

干杯。