#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