排序与日期时间字符串数组? [英] Sorting an array with DateTime strings?

查看:130
本文介绍了排序与日期时间字符串数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何有效地排序数组(最近的项目第一)在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>usortDocs功能?它可以让你定义一个回调函数来比较两个值。所以,我建议沿着这些路线的内容:

 函数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 usortDocs 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆