5

問題が発生しています。次のような多次元配列があります。

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

4 に答える 4

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

または >= PHP 7 の場合

usort($array, function($a, $b){
    return strtotime($a[2]) <=> strtotime($b[2]);
});
于 2013-04-07T15:25:40.450 に答える
4

を使用usortしてそれを行うことができますClosure

usort($array, function($a, $b) {
    $a = strtotime($a[2]);
    $b = strtotime($b[2]);
    return (($a == $b) ? (0) : (($a > $b) ? (1) : (-1)));
});
于 2013-04-07T15:39:46.363 に答える
2

その日は机から離れているだけなので、具体的なことは言えません。しかし、例を含む開始するのに適した場所は次のとおりです。

于 2013-04-07T15:28:13.260 に答える