网络抓取-我如何从最小到最大排序时间和日期,以便在PHP中按时间顺序提取数据


web scraping - How do I order times and dates from smallest to largest in order to extract data chronologically in PHP?

如何使用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"
}

我希望输出类似于:

2015年6月24日:

事件

另一个事件

2015年6月25日:

另一个事件

提前谢谢。

您可以将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是一个数组,如您的问题中所述,它填充了对象。请注意,此解决方案需要版本>=5.3.0的PHP 5,才能使用DateTime类。

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

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

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