Сортировка данных JSON на основе метки времени UTC в php со стороны клиента

#php #arrays #json #sorting #usort

#php #массивы #json #сортировка #usort

Вопрос:

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

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

Комментарии:

1. Почему это вопрос MySQL?

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

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

4. Кто сказал, что это вопрос mysql??? @shmosel

5. У него был тег «mysql».

Ответ №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);
 

Комментарии:

1. Итак, новая сортировка сохраняется в $date . Могу ли я сохранить обратно в $ d? @Sadikhasan

2. Он будет храниться $d не в $date