如何使用PHP对JSON产品进行排序

时间:2009-10-19 21:36:31

标签: php json sorting

如何通过说“id:17 value:###”

对这两种产品进行排序

{ “ID”: “16”, “值”: “L-AOC000”},{ “ID”: “17”, “值”: “6.00”},{ “ID”: “18”, “值”: “10.00”},{ “ID”: “19”, “值”: “7.52”},{ “ID”: “20”, “值”: “4.75”},{ “ID”: “21”, “值”: “3.50”}

{ “ID”: “16”, “值”: “L-AOC001”},{ “ID”: “17”, “值”: “7.00”},{ “ID”: “18”, “值”: “11.00”},{ “ID”: “19”, “值”: “6.52”},{ “ID”: “20”, “值”: “5.75”},{ “ID”: “21”, “值”: “4.50”}

2 个答案:

答案 0 :(得分:5)

您可以使用json_decode()将json对象转换为php数组。从那里,您可以使用任何array sorting functions native to php

答案 1 :(得分:2)

首先,你想把Json转换为php类型。

$ data = json_decode($ the_json_string);

然后你拥有的是一个对象数组。

您可以使用 usort ()按属性对其进行排序(http://au2.php.net/usort)。

好像你想首先通过id测试然后按值测试......

function sort_by_id_then_value($a, $b)
{
    if ($a->id == $b->id) {
        if ($a->value == $b->value) {
            return 0;
        return ($a->value < $b->value ) ? -1 : 1;
    }
    return ($a->id < $b->id) ? -1 : 1;
}

usort($data, "sort_by_id_then_value");