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