2012-02-08 11 views
2

私はそれが年齢 'フィールドおよび出力によってソート、連想配列に以下のHTMLテーブルとしてソートされた配列をJSON文字列を解析したい:json文字列をソートする方法は?

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

?> 

は私が印刷しjson_decodeのいくつかの並べ替えを使用すべき個々の値とPHPで既存のソート関数を使用する?

答えて

3

はい、唯一の方法は、(私の知っている)を使用することです:

$array = json_decode($json); 
$array = array_map($array, 'objectToArray'); 

// Or rather: 
$array = json_decode($json, true); 

// And sort 
sort($array); 

PHPはちょうどマニュアルを参照し、many array sorting機能を提供しています。私はまた、this pageから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'); 
+3

'json_decode(真の$ JSON、);'? – Problematic

+0

@Problematicありがとう、私はそれを忘れてしまった。編集されました。 – Vyktor

0

json_decodeアソシエート配列のPHP配列を与える文字列です。そこから、あなたが望むキーをソートするためにphpの組み込みソートを使うことができます。

関連する問題