0

Can anyone teach me how to group JSON data according to key value given in data. Here with I have give an example below.

I have following JSON data.

$print = '{"Table":[
{"Column":2,"Length":1,"Number":"A4","Row":12}, 
{"Column":2,"Length":1,"Number":"A3","Row":11},
{"Column":2,"Length":1,"Number":"A2","Row":9},
{"Column":2,"Length":1,"Number":"A1","Row":8},  
{"Column":3,"Length":1,"Number":"B4","Row":12},
{"Column":3,"Length":1,"Number":"B3","Row":11},
{"Column":3,"Length":1,"Number":"B2","Row":9},
{"Column":3,"Length":1,"Number":"B1","Row":8}],"ResponseStatus":200,"Message":null}';

I want to group this data according to the "Row" value as given below.

$print = '{"Table":[
{"Column":2,"Length":1,"Number":"A4","Row":12}, 
{"Column":3,"Length":1,"Number":"B4","Row":12},
{"Column":2,"Length":1,"Number":"A3","Row":11},  
{"Column":3,"Length":1,"Number":"B3","Row":11},
{"Column":2,"Length":1,"Number":"A2","Row":9},
{"Column":3,"Length":1,"Number":"B2","Row":9},
{"Column":2,"Length":1,"Number":"A1","Row":8},  
{"Column":3,"Length":1,"Number":"B1","Row":8}],"ResponseStatus":200,"Message":null}';

I googled many times for hours together, but I couldn't find solution for this. I want to group this in PHP. Kindly someone help me to solve this. Thanks in advance.

  • possible duplicate of [jQuery: Sorting JSON by values](http://stackoverflow.com/questions/881510/jquery-sorting-json-by-values) – showdev Feb 27 '15 at 19:41

1 Answers1

1
$json = json_decode($print, true);
usort($json['Table'], function($a, $b) { return $a['Row'] < $b['Row']; } );
$print = json_encode($json);
crrad
  • 186
  • 2
  • 8
  • Thank you so much for your valuable information. This works great for above but when I implement it with big JSON Data, "Column is not arranged properly. I want things to shart like below. – Naveen Prasath Feb 27 '15 at 19:37
  • Kindly help me with code that sort "Row" in descending order and "Column" in ascending order like given below. – Naveen Prasath Feb 27 '15 at 19:41
  • $print = '{"Table":[ {"Column":2,"Length":1,"Number":"A4","Row":12}, {"Column":3,"Length":1,"Number":"B4","Row":12}, {"Column":4,"Length":1,"Number":"C4","Row":12}, {"Column":5,"Length":1,"Number":"D4","Row":12}, {"Column":6,"Length":1,"Number":"E4","Row":12}, {"Column":7,"Length":1,"Number":"F4","Row":12}, {"Column":8,"Length":1,"Number":"G4","Row":12}, {"Column":9,"Length":1,"Number":"H4","Row":12}, {"Column":10,"Length":1,"Number":"I4","Row":12}, {"Column":11,"Length":1,"Number":"J4","Row":12}, {"Column":12,"Length":1,"Number":"K4","Row":12}]}'; – Naveen Prasath Feb 27 '15 at 19:43