为了在PHP中按时间顺序提取数据,如何从最小到最大订购时间和日期?

时间:2015-06-24 07:53:55

标签: php web-scraping

如何使用PHP(而不是MySQL)按时间顺序提取数据,从而将时间和日期从最小到最大排序?

我有一个包含各种“键”的对象的数组,其中包括时间和事件。

以下是我所拥有的var_dump的编辑:

[0] => object {
    ["time"] => "24/06/2015 - 12:30 PM"
    ["event"] => "Another event"
}
[1] => object {
    ["time"] => "24/06/2015 - 08:45 AM"
    ["event"] => "Event"
}
[2] => object {
    ["time"] => "25/06/2015 - 09:50 AM"
    ["event"] => "Yet another event"
}

我希望输出类似于:

  

24/06/2015:

     

事件

     

另一个事件

     

25/06/2015:

     

又一个事件

提前致谢。

2 个答案:

答案 0 :(得分:0)

一种方法是重新排列数组,因此键是时间戳值:

$newArr = [];
foreach($objArr as $obj) {
  $newArr[ strtotime( $obj->time ) ] = $obj;
}

然后,您可以使用ksort()krsort()

答案 1 :(得分:0)

您可以使用具有以下自定义功能的usort标准php函数:

function sortbytobjtime($a, $b){
    $adate = date_create_from_format('d/m/Y - h:i a', $a->time);
    $bdate = date_create_from_format('d/m/Y - h:i a', $b->time);
    if ( $adate == $bdate ) return 0;
    return ( $adate < $bdate) ? -1 : 1;
}

usort($arr, 'sortbytobjtime');

$ arr是一个充满对象的数组,如您的问题中所述。 请注意,此解决方案需要PHP 5,版本为&gt; = 5.3.0才能使DateTime类可用。