多个键上的多维数组排序

时间:2012-01-28 08:17:43

标签: php sorting multidimensional-array

您好我已经使用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
                )
            )

对此的任何帮助将不胜感激。

1 个答案:

答案 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上的示例几乎解释了它。

干杯。