繁体   English   中英

如何基于php中的一个键值对JSON对象进行排序和显示

[英]How to sort and display JSON objects based on one key value in php

我通过JSON接收数据,我可以读取数据并通过一个大列表中的图标显示如何接收它们。 我要做的是按价格对对象进行排序,并在页面上的两列中将它们显示为图标。

一栏中是免费商品(价格= 0),另一栏中是付费商品(价格> 0)

我假设我必须使用usort(我不太了解),但是我不知道如何将其放置到现有代码中以及如何创建div以在左右两栏中显示图标。

这是我现在的简化代码:

$arr = json_decode($jsondata,true);

    if ($arr['resultCount'] > '0') {

    foreach($arr['results'] as $item) {
        $icon = $item['artwork'];
        $title = $item['trackName'];
        $price = $item['price'];

        if ($price == 0 ) {

        echo '<div class="iconsearch" style="background-image: url('.$icon.');"><a href="'.$title.'">'.$title.'<img src="images/iconmask.png"/></a></div>';
        } else {
        echo '<div class="iconsearch" style="background-image: url('.$icon.');"><a href="'.$title.'">'.$title.'<img src="images/iconmask.png"/></a></div>';
        }
    }
}

您需要对输入的结果进行排序。为此,您应该使用usort并提供您自己的功能:

usort — 使用用户定义的比较函数按值对数组进行排序

尝试以下方法:

if ($arr['resultCount'] > 0) {

    usort($arr['results'], function ($a, $b) {
        return $a["price"] > $b["price"];
    });

    var_dump($arr['results']);

    //.. now that its sorted, you can iterate and do as you wish

}

来源: http//php.net/manual/en/function.usort.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM