【问题标题】:Need assistance with a usort requirement需要有关排序要求的帮助
【发布时间】:2012-06-06 22:09:16
【问题描述】:

我查看了一些谷歌,实际上也找到了这个堆栈:How to sort a date array in PHP

我的波长相同,但我不确定我是否清楚。我也阅读了 phpnet 文档...正如我所说,我对此感到不安。

我有一个数组:

Array
(
    [0] => Array
        (
            [created] => 2012-06-06 21:26:25
        )

    [1] => Array
        (
            [created] => 2012-06-06 21:23:45
        )

)

我基本上需要对这个数组进行排序,以便它们按日期顺序排列。 这个回调函数如何为 usort 工作?任何例子都会很棒!

【问题讨论】:

    标签: php date usort


    【解决方案1】:
    function MySort($a, $b)
    {
        if ($a['created'] == $b['created']) return 0;
        return $a['created'] < $b['created'] ? -1 : 1;
    }
    

    然后使用...

    usort($myarray, "MySort");
    

    【讨论】:

    • $a['created'] 是一个代表日期的字符串。
    • 可以,但是strtotime不需要执行,因为是yyyy-mm-dd格式,所以分别按年、月、日、时、分、秒排序。
    • 只要所有的月/日都被零填充,那么你就没事了。否则'5'&gt;'06'.
    • 非常感谢。由于其他原因,我现在又写了 2 种,它们都在工作……我想我已经掌握了。为简单干杯!
    【解决方案2】:

    usort 只是让您使用自己的标准进行排序。你可以这样做:

    usort($array, function($a, $b){
        $a = strtotime($a['created']);
        $b = strtotime($b['created']);
        return $a-$b;
    });
    

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2011-05-10
      • 1970-01-01
      • 2015-06-23
      • 2014-12-26
      • 2013-08-12
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多