我有这组数组:
Array(
[day_1] => Array(
[3744] => Array(
[time_start] => 11:00
[time_end] => 12:00
[notes] =>
)
[3746] => Array(
[time_start] => 08:00
[time_end] => 11:00
[notes] =>
)
[532] => Array(
[time_start] => 09:00
[time_end] => 11:30
[notes] =>
)
)
[day_2] => Array(
[3747] => Array(
[time_start] => 08:00
[time_end] => 10:00
[notes] =>
)
)
)
如何根据" time_start"的值对" day_1"中的数组排序?
我想实现的最终结果是:
Array(
[day_1] => Array(
[3746] => Array(
[time_start] => 08:00
[time_end] => 11:00
[notes] =>
)
[532] => Array(
[time_start] => 09:00
[time_end] => 11:30
[notes] =>
)
[3744] => Array(
[time_start] => 11:00
[time_end] => 12:00
[notes] =>
)
)
[day_2] => Array(
[3747] => Array(
[time_start] => 08:00
[time_end] => 10:00
[notes] =>
)
)
)
我尝试过:
foreach($array['day_1'] as $key => $value){
$starttime[$key] = strtotime($value['time_start']);
}
array_multisort($starttime, SORT_ASC, $array['day_1']);
,但没有排序,它也删除了我的数组键。
使用 uasort 函数的解决方案:
// $arr is your initial array
uasort($arr['day_1'], function($a, $b){
return strcmp($a['time_start'], $b['time_start']);
});
print_r($arr);
demo链接