2014-03-14 60 views
-1

我有一個數組。現在我想按date.how排序這個數組?排列數組日期明智

我的數組

$細節= $這個 - > api_model-> testw()在$細節

這裏MySQL查詢返回的結果數組。

我想我的排序數組作爲日期,那麼要顯示輸出JSON

在JSON計算我的輸出顯示後。

"details":[ 

     { 
      "id":"2", 
      "score":"1256", 
      "user_id":"5", 
      "date":"2014-02-05 00:00:00", 

     }, 
     { 
      "id":"3", 
      "score":"100", 
      "user_id":"6", 
      "date":"2014-03-08 00:00:00", 

     }, 
     { 
      "id":"4", 
      "score":"123", 
      "user_id":"7", 
      "date":"2014-03-04 00:00:00", 


     }, 

    ] 

我與使用kso​​rt但不起作用

+0

這是一個json字符串,而不是一個數組。你到目前爲止嘗試過什麼? – Rikesh

+0

嘗試'usort' .... – xdazz

+1

閱讀'json_decode'和'usort' –

回答

4

使用usort嘗試。該函數將數組中的日期字段轉換爲可輕鬆相互比較的unix時間戳。

<?php 
$arr = array(
array("id" => 2, "date" => "2014-02-05 00:00:00"), 
array("id" => 3, "date" => "2013-02-05 00:00:00"), 
array("id" => 4, "date" => "2012-02-05 00:00:00"), 
array("id" => 5, "date" => "2011-02-05 00:00:00"), 
array("id" => 6, "date" => "2012-02-05 00:00:00"), 
array("id" => 7, "date" => "2012-04-05 00:00:00"), 
array("id" => 8, "date" => "2018-02-05 00:00:00")); 

usort($arr,function($a,$b) 
    { 
    $a = strtotime($a['date']); 
    $b = strtotime($b['date']); 
    //return $a - $b; //is possible too, but harder to understand 
    if ($a == $b) return 0; 
    return ($a < $b) ? -1 : 1; 
    } 
); 

print_r($arr);