使用usort对json输出进行排序

时间:2016-09-05 07:52:47

标签: php arrays json sorting usort

我在json outout下面。任何人都可以建议如何根据" no_count"列?

$arr= {"UserHeader":[

{"id":"154", "no_count":15},
{"id":"155", "no_count":11},
{"id":"158", "no_count":13},
{"id":"159", "no_count":31},
{"id":"164", "no_count":11}

]}

我使用过USORT但没有运气。代码不起作用,并给我相同的数组而不进行排序。

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

 print_r($arr);   

可能是一个小的格式错误。

由于

1 个答案:

答案 0 :(得分:0)

我做了一些更正:

$arr = json_decode('{"UserHeader":[
{"id":"154", "no_count":15},
{"id":"155", "no_count":11},
{"id":"158", "no_count":13},
{"id":"159", "no_count":31},
{"id":"164", "no_count":11}
]}');

usort($arr->UserHeader, function ($a, $b) { //Sort the array using a user defined function
    return $a->no_count > $b->no_count ? -1 : 1; //Compare the scores
});

print_r($arr);

它应该按预期工作。