开发者

How to Sort JSON Products with PHP [closed]

开发者 https://www.devze.com 2022-12-09 10:51 出处:网络
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post.
Closed. This question needs details or clarity. It is not currently accepting answers.

Want to improve this question? Add details and clarify the problem by editing this post.

Closed 3 months ago.

Improve this question

How would I sort these two products by say id:17 value:### ?

{"id":"16","value":"L-AOC000"},
{"id":"17","value":"6.00"},
{"id":"18","value":"10.00"},
{"id":"19","value":"7.52"},
{"id":"20","value":"4.75"},
{"id":"21","value":"3.50&quo开发者_运维知识库t;}

{"id":"16","value":"L-AOC001"},
{"id":"17","value":"7.00"},
{"id":"18","value":"11.00"},
{"id":"19","value":"6.52"},
{"id":"20","value":"5.75"},
{"id":"21","value":"4.50"}


You can convert the json object to a php array with json_decode(). From there, you can use any of the array sorting functions native to php.


Well first, you'd want to conver the Json into a php type.

$data = json_decode($the_json_string);

Then what you have is really an array of objects.

You can use usort() to sort it out (http://au2.php.net/usort) by property.

Seems like you want to test by id first then by value...

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");
0

精彩评论

暂无评论...
验证码 换一张
取 消