douyuan6490 2014-04-06 21:41
浏览 88
已采纳

如何按PHP中的时间值对多维数组进行排序?

I'm doing a school project and I have a multi-dimensional array having start_time and end_time of courses.

I already sorted the array by day, but I also want to sort the array by time. Such that the lowest start_time is the first element of the array.

This is how my array is at the moment:

Array ( 
       [0] => Array ( 
                     [courseID] => comp345
                     [lectureID] => ss
                     [day] => monday
                     [stime] => 18:20 
                     [etime] => 20:30 
                     [term] => winter 
                     [year] => 2014 
              )
       [1] => Array ( 
                     [courseID] => comp275 
                     [lectureID] => gg 
                     [day] => monday 
                     [stime] => 12:15 
                     [etime] => 15:16 
                     [term] => winter 
                     [year] => 2014
              )
)

I was wondering if there are any pre-defined functions to do that or if i need to create a new specific function for this task .

I can access the values of the start_time like this :

foreach ($array as $element)
{
  $start_time = (substr($element['stime'], 0, 5));
}

This will return the time in this format : 08:20

It works the same way as normal numbers when comparing such as :

08:20 < 10:15 = true

08:20 > 10:15 = false

  • 写回答

2条回答 默认 最新

  • doucao8982 2014-04-06 21:48
    关注

    PHP >= 5.5.0:

    array_multisort(array_map('strtotime', array_column($array, 'stime')), SORT_ASC, $array);
    

    PHP < 5.5.0:

    foreach ($array as $k => $v) {
      $stime[$k] = strtotime($v['stime']);
    }
    array_multisort($stime, SORT_ASC, $array);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改