【问题标题】:sort a JSON array with PHP [closed]使用 PHP 对 JSON 数组进行排序 [关闭]
【发布时间】:2020-11-12 10:24:30
【问题描述】:

我正在尝试将 youtube API 统计信息作为 JSON 数据注册到其适当的数据库。到目前为止,我想出了列出整个数据, 但我无法列出和排序代表“dislikeCount”的单个数据,从多到少。

我在“$ Row ['page_content']”部分中提到的 JSON 数据如下。我希望将“dislikeCount”数据从大到小排序。

任何帮助将不胜感激。

数据库页面内容

{
    "kind":"youtube#video",
    "etag":"LVLEiwEdUU043rY6JqiUrm7FmYY",
    "id":"IMiBrszc40s",
    "statistics":{
        "viewCount":"6416534",
        "likeCount":"26553",
        "dislikeCount":"1862",
        "favoriteCount":"0",
        "commentCount":"987"
    }
}

index.php

$query = $db->from('pages')->orderBy('page_id', 'ASC')->all();

if ($query) {

    foreach ($query as $row) {

        $json = json_decode($row['page_content'], true);
        $videoView = $json['statistics']['viewCount'];
        $videoLike = $json['statistics']['likeCount'];
        $videoComment = $json['statistics']['commentCount'];

        echo $videoView;
        echo $videoLike;
        echo $videoComment;

    }
}

【问题讨论】:

  • 你为什么这么多开始和结束PHP标签?没有必要这样做。您甚至在单个标签之间有多行 PHP,因此您已经知道这是可能的。除此之外,你的问题很不清楚。我不确定您希望我们为您提供什么帮助。
  • 欢迎来到 StackOverflow Kaan。对不起,但是,就像@GrumpyCrouton,我不明白你想做什么。我建议您编辑您的问题以澄清它! :)
  • 我们很高兴来到这里。你说得对,我是一个小菜鸟,我可能无法表达自己。我希望你明白。谢谢
  • orderBy('page_id, 'ASC')->all()中真的没有引用吗
  • $page_content

标签: php json


【解决方案1】:

根据我从您的问题中了解到的情况,您有一个数据库表 pages。此表有一个 JSON 列 page_content,其中包含您指定的 JSON。现在您要根据pages.page_content.statistics.dislikeCountpages 进行排序吗?

如果您使用的是 MySQL 或 PostgreSQL,那么您可以直接在 SQL 查询中对结果集进行排序。例如,对于 MySQL(未经测试,因为我现在没有在本地运行 mysql):

SELECT * FROM pages
ORDER BY page_id, page_content->"$.statistics.dislikeCount"

如果 SQL 不是一个选项,您可以使用 PHP 的 usort

【讨论】:

  • 是否可以通过 json over sql 进行排序?
  • 是的,我有一个“pages”表,它出现在我的“page_content”列中。但是我怎样才能访问这个 orderby 中的 json 值呢?
  • 做了但排序错误:s 或者更确切地说,没有序列:s
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多