按优先顺序将php多维数组排序2个值

时间:2013-11-12 17:40:32

标签: php sorting multidimensional-array

所以我对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"
  }
}

1 个答案:

答案 0 :(得分: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);