所以我对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"
}
}
答案 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);