2013-04-07 17 views
5

問題があります。PHPは日付で多次元配列をソートします

Array ([0] => 
       Array ( 
        [0] => Testguy2's post. 
        [1] => testguy2 
        [2] => 2013-04-03 
      ) 

     [1] => Array ( 
        [0] => Testguy's post. 
        [1] => testguy 
        [2] => 2013-04-07 
      ) 
); 

は、私が最も古い日付の最新の日付からの投稿をソートしたいので、それは次のようになります:私は多次元配列を持って、それは次のようになります

Array ([1] => Array ( 
        [0] => Testguy's post. 
        [1] => testguy 
        [2] => 2013-04-07 
       ) 
     [0] => Array ( 
        [0] => Testguy2's post. 
        [1] => testguy2 
        [2] => 2013-04-03 
       ) 
); 

どのようにソートを行いますそれ?

答えて

4
function cmp($a, $b){ 

    $a = strtotime($a[2]); 
    $b = strtotime($b[2]); 

    if ($a == $b) { 
     return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

usort($array, "cmp"); 
+0

これは正常に動作します... –

2

私は一日のうちに私の机から離れていますので、私は詳細を提供することはできません。 array_multisort

4

あなたが行うことができ、それはClosureusortを使用して::

usort($array, function($a, $b) { 
    $a = strtotime($a[2]); 
    $b = strtotime($b[2]); 
    return (($a == $b) ? (0) : (($a > $b) ? (1) : (-1))); 
}); 
1
$dates = array();  
foreach($a AS $val){ 
    $dates[] = strtotime($val[2]); 
} 
array_multisort($dates, SORT_ASC, $a); 
+0

すてきであると考えられる。しかし、ここでの例が含まれていることを始めるのに良い場所ですコードの説明を追加してください。 – zx485