【问题标题】:Sort JSON data based on UTC timestamp in php from client side从客户端根据 php 中的 UTC 时间戳对 JSON 数据进行排序
【发布时间】:2014-06-26 05:31:03
【问题描述】:

我有一个带有一些数据的 JSON。其中一个字段是时间戳。有没有办法根据时间戳对数据进行排序?请不要向我推荐任何 jQuery 插件,例如 DataTables。而且我也不想按排序顺序从数据库中获取数据。我使用以下 SQL 命令。

select * from tablename;

我不想使用类似这样的命令从数据库中以排序形式获取数据。

select * from tablename ORDER BY.....

是否可以像我所说的那样使用 PHP 对 JSON 数据进行排序???我希望根据时间戳按降序对数据进行排序。有什么建议吗???

这是一个示例数据

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

【问题讨论】:

  • 为什么这是一个 MySQL 问题?
  • 再看问题?? @shmosel
  • 我看到您想要对 JSON 数据集进行排序,而您不想想要在 MySQL 中进行。那么是什么让这是一个 MySQL 问题呢?
  • 谁说这是一个mysql问题??? @shmosel
  • 它有一个“mysql”标签。

标签: php arrays json sorting usort


【解决方案1】:

在 PHP 中尝试array_multisort 函数

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

【讨论】:

  • 所以,新排序的存储在 $date 中。我可以存储回 $d 吗? @Sadikhasan
  • 它将存储在$d而不是$date
猜你喜欢
  • 2020-04-15
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 2013-06-06
  • 2012-07-15
  • 2018-08-09
相关资源
最近更新 更多