使用 PHP 对 JSON 数组进行排序

我正在尝试将 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"

    }

}

索引.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;


    }

}


郎朗坤
浏览 112回答 1
1回答

MMTTMM

据我从你的问题中了解到,你有一个数据库表pages。该表有一个 JSON 列,page_content其中包含您指定的 JSON。现在您想pages根据? 进行排序pages.page_content.statistics.dislikeCount?如果您使用 MySQL 或 PostgreSQL,那么您可以直接在 SQL 查询中对结果集进行排序。例如,对于 MySQL(未经测试,因为我现在没有在本地运行 mysql):SELECT * FROM pages ORDER BY page_id, page_content->"$.statistics.dislikeCount"如果 SQL 不是一个选项,您可以使用 PHP 的usort.
打开App,查看更多内容
随时随地看视频慕课网APP