2013-02-28 13 views
0

訂購陣列我有一個數組,看起來像這樣:如何使用分貝數據

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

和[1],[2] ...看起來是相同的。

我想知道如何訂購我的數組,因此[0]是最新的日期。更改爲時間戳不是一種意見。有任何想法嗎?

回答

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); 
1

在您的查詢中使用順序。

ORDER BY date 
+0

我在想如果有辦法用數組instea做到這一點d,有多個查詢 – 2013-02-28 04:00:29

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

?> 

OUTPUT:

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 
     ) 

)