0

所以我对 php 中的排序功能感到非常困惑,想知道是否有人能指出我正确的方向。

以下是一个多维数组,我希望先对我的日期进行排序,然后再按时间排序。这样,如果 2 个日期相同,则较早的时间将首先显示。

这可以做到吗?怎么做?

顶部数组称为 $events

谢谢!

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(4) "Jack"
    ["date"]=>
    string(8) "21.11.13"
    ["time"]=>
    string(5) "17:36"
  }
  [1]=>
  array(3) {
    ["name"]=>
    string(4) "Mike"
    ["date"]=>
    string(8) "21.11.13"
    ["time"]=>
    string(5) "07:30"
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(6) "Thomas"
    ["date"]=>
    string(8) "10.11.12"
    ["time"]=>
    string(5) "18:21"
  }
}
4

1 回答 1

0

你需要array_multisort()这个。在您的情况下,您需要从多维数组中提取要排序的列,并将它们作为参数传递给 array_multisort。这是您的问题的解决方案:)

/*walk the array and extract the columns needed for sorting*/
foreach($yourarray as $key=>$row){   
  $date[$key] = $row['date'];  
  $time[$key] = $row['time']; 
} 
/*sort the array */
array_multisort($date, SORT_ASC, $time, SORT_ASC, $yourarray);
于 2013-11-12T18:10:29.773 回答