PHP按包含日期的元素对多维数组进行排序

我有一个数组,如:

Array

(

[0] => Array

(

[id] => 2

[type] => comment

[text] => hey

[datetime] => 2010-05-15 11:29:45

)

[1] => Array

(

[id] => 3

[type] => status

[text] => oi

[datetime] => 2010-05-26 15:59:53

)

[2] => Array

(

[id] => 4

[type] => status

[text] => yeww

[datetime] => 2010-05-26 16:04:24

)

)

谁能建议一种基于datetime元素对此进行排序/排序的方法?

回答:

使用usort()和自定义比较功能:

function date_compare($a, $b)

{

$t1 = strtotime($a['datetime']);

$t2 = strtotime($b['datetime']);

return $t1 - $t2;

}

usort($array, 'date_compare');


:您的数据组织在一个数组的数组中。为了更好地区分这些数据,我们将其称为内部数组(数据)记录,以便您的数据实际上是一个记录数组。

usort会一次将其中两个记录传递给给定的比较函数date_compare()

date_compare然后将"datetime"每个记录的字段提取为UNIX时间戳(整数),并返回差值,以便结果将是0两个日期相等,如果第一个日期($a)较大则为正数,如果第二个日期较大则为负数。第二个参数($b)较大。

usort()使用此信息对数组进行排序。

以上是 PHP按包含日期的元素对多维数组进行排序 的全部内容, 来源链接: utcz.com/qa/415037.html

回到顶部