【发布时间】:2014-04-06 23:16:52
【问题描述】:
需要用 php 对第二个嵌套数组按值 n 第三个进行排序; '开始时间'。思考也许 usort 是关键。发布 @week @day @class 的嵌套数组以及我一直在尝试变体的 usort 调用和函数。
Array
(
[Sunday] => Array
(
[0] => Array
(
[Class Name] => Fun Class
[Instructor] => Fun Teacher
[Class Type] => Yoga Stretches
[Start Time] => 1899-12-30T17:00:00
[End Time] => 1899-12-30T18:15:00
[Day Name] => Sunday
)
[1] => Array
(
[Class Name] => Another Fun Class
[Instructor] => Same Fun Teacher
[Class Type] => Relaxation
[Start Time] => 1899-12-30T18:30:00
[End Time] => 1899-12-30T19:45:00
[Day Name] => Sunday
)
[2] => Array
(
[Class Name] => Hot Yoga without Cold
[Instructor] => Dave the Flexible
[Class Type] => Hot Hot Yoga
[Start Time] => 1899-12-30T09:00:00
[End Time] => 1899-12-30T10:30:00
[Day Name] => Sunday
)
)
[Monday] => Array
(
[0] => Array
(
[Class Name] => Mellow Chill Hang
[Instructor] => Guru Awesome
[Class Type] => Yoga Namaste
[Start Time] => 1899-12-30T12:00:00
[End Time] => 1899-12-30T13:00:00
[Day Name] => Monday
)
)
)
已经尝试过(变体):
foreach ($week_schedule as $day)//$week_schedule = the outer array
{
for($j=count($week_schedule);$j>=0;$j--)
usort($day,'sortTimes');
}
function sortTimes( $a, $b ) {
return strtotime($a["Start Time"]) - strtotime($b["Start Time"]);
}
已尝试使用单个 foreach 提取值 ($day => $class)。 我敢打赌这最终不会需要太多代码。
【问题讨论】:
标签: php arrays sorting nested usort