Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于多个键的多维数组排序_Php_Sorting_Multidimensional Array - Fatal编程技术网

Php 基于多个键的多维数组排序

Php 基于多个键的多维数组排序,php,sorting,multidimensional-array,Php,Sorting,Multidimensional Array,您好,我已经使用了一段时间的array\u sort()函数对来自多个API的结果进行排序,但是现在我需要同时按两个键进行排序 我需要排序的两个键是deal\u scoreDESC和date\u startDESC 此数组的属性如下所示。 记录2具有最高的deal\u得分,因此应排在第一位 记录0和记录1具有相同的deal\u得分,但date\u start在记录1上更高,因此结果的最终顺序应为2,1,0 下面是一个示例数组,为了便于阅读,该数组已被缩减 [0] => Arr

您好,我已经使用了一段时间的
array\u sort()
函数对来自多个API的结果进行排序,但是现在我需要同时按两个键进行排序

我需要排序的两个键是
deal\u score
DESC和
date\u start
DESC

此数组的属性如下所示。 记录2具有最高的
deal\u得分
,因此应排在第一位 记录0和记录1具有相同的
deal\u得分
,但
date\u 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
                )
            )

在此方面的任何帮助都将不胜感激。

像这样的事情应该可以:

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

array_multisort($score, SORT_ASC, $dates, SORT_ASC, $data);
三,。这个例子很好地解释了这一点


干杯。

像这样的事情应该可以:

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

array_multisort($score, SORT_ASC, $dates, SORT_ASC, $data);
三,。这个例子很好地解释了这一点

干杯