Сортировка вывода JSON в PHP

У меня есть следующий JSON:

{ "row": [ { "sort":3, "type":"fat", "widgets": [ {"values": [3,9] }, {"values": [8,4] } ] }, { "sort":2, "type":"three", "widgets": [ {"values": [3,4] }, {"values": [12,7] }, {"values": [12,7] } ] } ] } 

И этот PHP для вывода:

 foreach ( $value->row as $therow ) { echo "<div class='row ".$therow->type."'>"; foreach ( $therow->widgets as $thewidgets ) { echo "<div class='widget'>"; echo $thewidgets->values[0]; echo "</div>"; } echo "</div>"; } 

Что мне хотелось бы сделать, так это сортировать вывод, основанный на значении сортировки в JSON, любых идеях?

Использовать usort :

 function my_sort($a, $b) { if ($a->sort < $b->sort) { return -1; } else if ($a->sort > $b->sort) { return 1; } else { return 0; } } usort($value->row, 'my_sort'); 

Глянь сюда:

Сортировка ассоциативного массива в PHP

для пользовательской сортировки.

См. Ниже, если вы хотите сделать это на стороне клиента.

Сортировка JSON по значениям

Просто отсортируйте данные перед печатью во втором цикле foreach :

 foreach ($value->row as $therow) { if ($therow->sort == 2) { // sort $therow->widgets according to whatever sort 2 means } elseif ($therow->sort == 3) { // sort $therow->widgets according to whatever sort 3 means } echo "<div class='row ".$therow->type."'>"; foreach ($therow->widgets as $thewidgets) { echo "<div class='widget'>"; echo $thewidgets->values[0]; echo "</div>"; } echo "</div>"; }