我有这个数组:
Array
(
[0] => Array
(
[0] => Array
(
[title] => Vinyasa Yoga
[start_time] => 06:45 PM
[end_time] => 08:15 PM
[instructor] => Jock
[level] => All Levels
)
)
[1] => Array
(
[0] => Array
(
[title] => Yoga FUNdamentals
[start_time] => 05:30 PM
[end_time] => 06:30 PM
[instructor] => Jock
[level] => Beginners
)
)
)
我需要按时间对这个数组进行排序,以便从最早到最晚显示结果。
我该怎么做?
您可以使用usort。
例如:
$array = array(
array(
array(
"title" => "Vinyasa Yoga",
"start_time" => "06:45 PM",
"end_time" => "08:15 PM",
"instructor" => "Jock",
"level" => "All Levels"
)
),
array(
array(
"title" => "Yoga FUNdamentals",
"start_time" => "05:30 PM",
"end_time" => "06:30 PM",
"instructor" => "Jock",
"level" => "Beginners"
)
)
);
function cmp($a, $b)
{
$aDateTime = new DateTime($a[0]["start_time"]);
$bDateTime = new DateTime($b[0]["start_time"]);
return $aDateTime > $bDateTime ? 1 : -1;
};
usort($array, "cmp");
print_r($array);
将导致:
Array
(
[0] => Array
(
[0] => Array
(
[title] => Yoga FUNdamentals
[start_time] => 05:30 PM
[end_time] => 06:30 PM
[instructor] => Jock
[level] => Beginners
)
)
[1] => Array
(
[0] => Array
(
[title] => Vinyasa Yoga
[start_time] => 06:45 PM
[end_time] => 08:15 PM
[instructor] => Jock
[level] => All Levels
)
)
)