我有一个数组,如:
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()和自定义比较功能:
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()使用此信息对数组进行排序。
usort
date_compare()
date_compare
"datetime"
0
$a
$b