2012-03-24 10 views
3

私はPHPを使用して以下の配列の出力を持っています。私は2つのことをする必要があります...まず、配列をソートして、最新の日付で印刷する必要があります。日付は、mm/dd/yyyy(通常のタイムスタンプではない)形式で出力されるため、単純な並べ替えは使用できません。多次元配列(PHP)をソート - 日付合併症とカウント

次に、毎年何行が存在するかを数えます。 ので、以下の例では、私はそこにあることを知っておく必要があるだろう...ときがカウントを停止

  • 2012から2011
  • 1エントリーから2010
  • 2エントリから

    • 2エントリ年が日付の数字の残りの部分から分離されていないので、これはまた、物事を複雑に

    もう行が...あるん

    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 
         ) 
    
    ) 
    
  • 答えて

    2
    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"); 
    

    は、あなたの配列$配列を呼び出し、コードの上にそれをソートします。.. そして、あなたはforeachのを実行し、あなたに4桁で年を与えることのforeachでdate('Y',strtotime($a["racer_date"]))をチェックする必要がありますエンティティをカウントします。..