排序与日期时间字符串数组? [英] Sorting an array with DateTime strings?
本文介绍了排序与日期时间字符串数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何有效地排序数组(最近的项目第一)在PHP END_TIME
价值?
阵列
0 =>
排列
'值'=> INT 4
END_TIME'=>字符串'2012-01-20T08:00:00 + 0000(长度= 24)
1 =>
排列
'值'=> INT 0
END_TIME'=>字符串'2012-01-21T08:00:00 + 0000(长度= 24)
2 =>
排列
'值'=> INT 5
END_TIME'=>字符串'2012-01-22T08:00:00 + 0000(长度= 24)
3 =>
排列
'值'=> INT 4
END_TIME'=>字符串'2012-01-23T08:00:00 + 0000(长度= 24)
4 =>
排列
'值'=> INT 7
END_TIME'=>字符串'2012-01-24T08:00:00 + 0000(长度= 24)
解决方案
您是否看了<一个href=\"http://www.php.net/manual/en/function.usort.php\"><$c$c>usort$c$c>Docs功能?它可以让你定义一个回调函数来比较两个值。所以,我建议沿着这些路线的内容:
函数compare_func($ A,$ B)
{
// CONVERT $ a和$使用的strtotime()函数b日期和时间
$ T1 =的strtotime($ A [END_TIME]);
$ T2 =的strtotime($ B [END_TIME]); 回报($ T2 - $ T1);
}usort(main_arraycompare_func);
How can i sort efficiently this array (recent items first) on end_time
value in PHP?
array
0 =>
array
'value' => int 4
'end_time' => string '2012-01-20T08:00:00+0000' (length=24)
1 =>
array
'value' => int 0
'end_time' => string '2012-01-21T08:00:00+0000' (length=24)
2 =>
array
'value' => int 5
'end_time' => string '2012-01-22T08:00:00+0000' (length=24)
3 =>
array
'value' => int 4
'end_time' => string '2012-01-23T08:00:00+0000' (length=24)
4 =>
array
'value' => int 7
'end_time' => string '2012-01-24T08:00:00+0000' (length=24)
解决方案
Have you looked at the usort
Docs function? It lets you define a callback function to compare two values. So I'm suggesting something along these lines:
function compare_func($a, $b)
{
// CONVERT $a AND $b to DATE AND TIME using strtotime() function
$t1 = strtotime($a["end_time"]);
$t2 = strtotime($b["end_time"]);
return ($t2 - $t1);
}
usort(main_array, "compare_func");
这篇关于排序与日期时间字符串数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文