как отсортировать строку json?

Я хочу проанализировать строку JSON ниже в ассоциативный массив, отсортировать его по полю «age» и вывести отсортированный массив в виде таблицы HTML:

<? $json='[{"name": "jesse","age": 25},{"name": "jason","age": 29},{"name": "johnson","age": 24}]'; ?> 

Должен ли я использовать какой-то json_decode для печати отдельных значений и использовать существующую функцию сортировки в php?

Да, единственный способ (я знаю) использовать:

 $array = json_decode( $json); $array = array_map( $array, 'objectToArray'); // Or rather: $array = json_decode( $json, true); // And sort sort( $array); 

Php предлагает множество функций сортировки массивов , просто просматривайте руководство. Я также заимствовал objectToArray с этой страницы .

Я думаю, вы захотите отсортировать по возрасту (или имени), вероятно, вы должны использовать usort :

 function cmp( $a, $b){ if( !isset( $a['age']) && !isset( $b['age'])){ return 0; } if( !isset( $a['age'])){ return -1; } if( !isset( $b['age'])){ return 1; } if( $a['age'] == $b['age']){ return 0; } return (($a['age'] > $b['age']) ? 1 : -1); } usort( $array, 'cmp'); 

вы можете json_decode строку, которая даст вам массив php ассоциированных массивов. Оттуда вы можете использовать встроенную сортировку php для сортировки по требуемому ключу.