2014-06-26 1 views
0

У меня есть JSON с некоторыми данными. Одним из полей является метка времени. Есть ли способ сортировки данных на основе метки времени? Пожалуйста, не рекомендуйте мне какие-либо плагины jQuery, такие как DataTables. И я не хочу получать данные из базы данных в отсортированном порядке. Я использую следующую команду SQL.Сортировать данные JSON на основе временной метки UTC в php с клиентской стороны

select * from tablename; 

Я не хочу получать данные в отсортированной форме из базы данных, используя команду что-то вроде этого.

select * from tablename ORDER BY..... 

Возможно ли сортировать данные JSON, как то, что я сказал, используя PHP ??? Я хочу, чтобы данные сортировались в порядке убывания на основе метки времени. Какие-либо предложения???

Вот пример данных

http://codepad.viper-7.com/TyLOWV

Я попытался это ...

function sortByYear($a, $b) { 
    $dA = new DateTime($a['date']); 
    $dB = new DateTime($b['date']); 

    return $dA->format('y') - $dB->format('y'); 
} 


$d = json_decode($sample_data, true); 
$info = $d['date']; 

usort($info, 'sortByYear'); 

print_r($info); 
+0

Почему этот вопрос MySQL? – shmosel

+0

Посмотрите еще раз на вопрос? @shmosel –

+0

Я вижу, что вы хотите отсортировать набор данных JSON, и вы * не хотите делать это в MySQL. Итак, что делает этот вопрос MySQL? – shmosel

ответ

1

Попробуйте с array_multisort функции в PHP

$date = array(); 
$d = json_decode($sample_data, true); 
foreach ($d as $key => $row) 
{ 
    $date[$key] = $row['date']; 
} 
array_multisort($date, SORT_DESC, $d); 
+0

Итак, новая сортировка хранится в $ date. Можно ли хранить обратно до $ d? @Sadikhasan –

+1

Он будет хранить в '$ d' не в' $ date' – Sadikhasan