您好我已经使用array_sort()
函数here一段时间来对多个API的结果进行排序,但现在我需要同时按两个键排序。
我需要排序的两个键是deal_score
DESC和date_start
DESC
此数组的属性如下所示。
记录2具有最高deal_score
所以应该先来
记录0和1具有相同的deal_score
,但date_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
)
)
对此的任何帮助将不胜感激。
答案 0 :(得分: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);
第三。 http://php.net/manual/en/function.array-multisort.php上的示例几乎解释了它。
干杯。