当前位置: 首页 > 面试题库 >

按键值对PHP中的JSON对象进行排序

狄彬彬
2023-03-14
问题内容

我需要通过PHP脚本中的“得分”值对此类信息进行排序,该怎么办?:

Array
(
 [0] => stdClass Object
    (
        [name] => Morts par Déshydratation
        [score] => 4
        [id] => dwater
    )

 [1] => stdClass Object
    (
        [name] => Réparations de chantiers
        [score] => 87
        [id] => brep
    )

 [2] => stdClass Object
    (
        [name] => Campeur téméraire
        [score] => 77
        [id] => camp
    )

 [3] => stdClass Object
    (
        [name] => Décoration
        [score] => 112
        [id] => deco
    )
)

PS:这已经在PHP值中,我已经使用了json_decode。*


问题答案:

$data这个样子的:

Array
(
    [0] => stdClass Object
        (
            [name] => Morts par Déshydratation
            [score] => 4
            [id] => dwater
        )

    [1] => stdClass Object
        (
            [name] => Réparations de chantiers
            [score] => 87
            [id] => brep
        )

    [.] => ....
)

您可以usort()用来对数组进行排序:

<?php                                                                                                                                                                                                       
usort($data, function($a, $b) { //Sort the array using a user defined function
    return $a->score > $b->score ? -1 : 1; //Compare the scores
});

print_r($data);   
?>

输出:

Array
(
    [0] => stdClass Object
        (
            [name] => Décoration
            [score] => 112
            [id] => deco
        )

    [1] => stdClass Object
        (
            [name] => Réparations de chantiers
            [score] => 87
            [id] => brep
        )

    [2] => stdClass Object
        (
            [name] => Campeur téméraire
            [score] => 77
            [id] => camp
        )

    [3] => stdClass Object
        (
            [name] => Drogues
            [score] => 49
            [id] => drug
        )

    [4] => stdClass Object
        (
            [name] => Ouverture de porte
            [score] => 11
            [id] => door
        )

    [5] => stdClass Object
        (
            [name] => Morts par Déshydratation
            [score] => 4
            [id] => dwater
        )

)


 类似资料:
  • 我有一个班的学生有以下领域: 字段“状态”可以有2个值:1。现在,2。缺席的 然后我有一个可观察的列表: 因此,我将学生存储在这个列表中。每个学生都有出席或缺席状态。 我需要按状态对这个观察列表进行排序。我希望目前状态的学生在该列表中名列第一。 有什么建议吗? 如果有任何帮助,我将不胜感激。

  • 问题内容: 我有一个带有几个键值对的对象数组,我需要根据’updated_at’对它们进行排序: 这样做最有效的方法是什么? 问题答案: 您可以使用。 这是一个例子:

  • 问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对

  • 当我对它进行降序排序时,它应该首先显示Parent3,因为它有一个Z。这是我当前的hql,它得到了1>2>3的错误结果: 如果没有distinct,尽管它选择了多个相同的父级,但它仍然很好。 我有一个模型设置如下: 编辑:在集合中按HQL顺序对其进行排序,尽管当双亲具有相同的children.name值时,它不会比较下一个可能的值。即。 如果Parent1有孩子abba,zeon Parent2有

  • 问题内容: 在主题函数返回的代码中迭代返回的映射时,键未按顺序显示。 我如何才能使键按顺序排列/对地图进行排序,以使键按顺序排列并且值对应? 这是代码。 问题答案: 在围棋博客:去映射在行动中有极好的说明。 当使用范围循环在地图上进行迭代时,未指定迭代顺序,并且不能保证每次迭代之间都相同。从Go 1开始,运行时间会随机化映射迭代顺序,因为程序员依赖于先前实现的稳定迭代顺序。如果需要稳定的迭代顺序,

  • 问题内容: 例如具有以下代码: 我如何排序此json这样- 我用ID对用户进行了排序。. 我不知道如何在javascript中执行此操作。 问题答案: 首先,这 不是 JSON。这是一个JavaScript对象文字。JSON是数据的 字符串表示 形式,它恰好非常类似于JavaScript语法。 其次,您有一个对象。他们没有排序。不能保证元素的顺序。如果要保证顺序,则 需要 使用数组。这将需要您更改