0

私は次のような配列を持っています:

{ [0]=> array(4) { "20" ["date"]=> string(10) "2013-01-25" ["content"]=> string(3) "ref" }

[1]、[2]...同じように見えます。

配列を注文する方法がわからないので、[0]が最新の日付です。タイムスタンプへの変更は意見ではありません。何か案は?

4

3 に答える 3

1

クエリでorderbyを使用します。

ORDER BY date
于 2013-02-28T03:56:41.693 に答える
1

usort()を使用して、独自の比較関数(「オブジェクト」(内部配列)を比較する関数)を作成できます。

日付は単純な文字列比較を可能にする方法で記述されているため、次のように実行できます。

<?php
function compare($arr1, $arr2) {
   $date1 = $arr1[0];
   $date2 = $arr2[0];
   if($date1 > $date2){
       $ans = 1;
   }
   else if($date2 > $date1){
       $ans = -1;
   }
   else{
       $ans = 0;
   }
   return $ans;
}

$arr = array(array("date"=>"2013-01-25", "content"=>"ref"), 
                array("date"=>"2013-02-25", "content"=>"ref2"), 
                array("date"=>"2013-03-25", "content"=>"ref3")
        );

usort($arr, "compare");
print_r($arr);

?>

出力:

Array
(
    [0] => Array
        (
            [date] => 2013-03-25
            [content] => ref3
        )

    [1] => Array
        (
            [date] => 2013-02-25
            [content] => ref2
        )

    [2] => Array
        (
            [date] => 2013-01-25
            [content] => ref
        )

)
于 2013-02-28T04:06:45.890 に答える
0

これを試してください:これは多次元配列をソートします

$sort = array();
foreach($your_array as $k=>$v) {
    $sort['date'][$k] = $v['date'];
}

array_multisort($sort['date'], SORT_DESC, $your_array);


echo "<pre>";
print_r($your_array);
于 2013-02-28T04:30:30.283 に答える