【问题标题】:Sort multidimensional array (PHP) - date complications and counting排序多维数组 (PHP) - 日期复杂性和计数
【发布时间】:2012-03-24 05:35:15
【问题描述】:

我有以下使用 PHP 的数组输出。我需要做两件事……首先,我需要对数组进行排序,使其按最近的日期打印。我不能使用简单的排序,因为日期以 mm/dd/yyyy 格式输出(而不是常规时间戳)...

然后我需要计算每年存在多少行。 所以,在下面的例子中,我需要知道有...

  • 2010 年的 2 个条目
  • 2011 年的 2 个条目
  • 2012 年的 1 个条目
  • 当没有更多行时停止计数

由于年份与其他日期数字没有分开,这也使事情变得复杂......

Array
(
    [0] => Array
        (
            [racer_date] => 11/15/2010
            [racer_race] => Test Row 4
            [racer_event] => 321
            [racer_time] => 16
            [racer_place] => 12
            [racer_medal] => 1
        )

    [1] => Array
        (
            [racer_date] => 7/15/2010
            [racer_race] => Test Row 3
            [racer_event] => 123
            [racer_time] => 14
            [racer_place] => 6
            [racer_medal] => 0
        )

    [2] => Array
        (
            [racer_date] => 7/28/2011
            [racer_race] => Test Row
            [racer_event] => 123
            [racer_time] => 10
            [racer_place] => 2
            [racer_medal] => 2
        )

    [3] => Array
        (
            [racer_date] => 10/9/2011
            [racer_race] => Test Row 2
            [racer_event] => 321
            [racer_time] => 12
            [racer_place] => 3
            [racer_medal] => 3
        )

    [4] => Array
        (
            [racer_date] => 10/3/2012
            [racer_race] => World Indoor Championships (final)
            [racer_event] => 400m
            [racer_time] => 50.79
            [racer_place] => 1
            [racer_medal] => 1
        )

)

【问题讨论】:

    标签: php arrays date multidimensional-array count


    【解决方案1】:
    function cmp($a, $b)
    {
        if (strtotime($a["racer_date"]) == strtotime($b["racer_date"])) {
            return 0;
        }
        return (strtotime($a["racer_date"]) < strtotime($b["racer_date"])) ? -1 : 1;
    }
    
    usort($array, "cmp");
    

    调用你的数组$array,上面的代码会对它进行排序.. 要计算实体,您需要运行 foreach 并在该 foreach 中检查 date('Y',strtotime($a["racer_date"])),这将为您提供 4 位数的年份..

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2013-04-01
      • 2014-09-11
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多