2016-09-05 4 views
-2

У меня ниже out out json. Кто-нибудь может предложить, как сортировать это по столбцу «no_count»?Использование usort для сортировки json-вывода

$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

Если это фактический код, я ожидаю, что вы увидите ошибки, поскольку PHP не имеет понятия встроенной нотации JSON. Другая проблема заключается в том, что вы не учитываете все объекты в разделе 'UserHeader' key/property. –

+0

Благодарим вас за предложение. – user3657517

ответ

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

Он должен работать, как ожидалось.

+0

Отлично. Благодаря тонну. Это сработало. – user3657517