Sorting JSON Output in PHP
12,947
Solution 1
Use 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');
Solution 2
See here:
Sorting an associative array in PHP
for user-defined sorting.
Author by
Tom
Updated on June 04, 2022Comments
-
Tom almost 2 years
I've got the following 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] } ] } ] }
And this PHP to output it:
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>"; }
What I would like to do is sort the ouput based on the sort value in the JSON, any ideas?
-
Gumbo almost 15 yearsAnd what kind of sort would be “2” or “3”?
-
Tom almost 15 yearsThe order of the row as it was created in the backend
-