2014-01-14 50 views
-1

值排序一個JSON OBJ我有一個JSON對象是這樣的:如何基於與PHP

{"528":5,"527":1,"526":2,"524":6} 

我需要的是:

{"527":1,"526":2,"528":5,"524":6} 
+0

那麼,如何你想實現這一目標? – Max

+1

這不是一個數組。這是一個對象。對象屬性沒有順序。 [JSON](http://json.org)中唯一有序的東西是一個數組,它是用'['和']'字符編寫的。 (「陣列」不喜歡在PHP中這實際上是一本字典或地圖「關聯數組」,但在一個有序的一系列項目的意識。) –

+0

這是不是一個數組,這是一個對象 – schnawel007

回答

3

Fiddle Example

<?php 
    $json='{"528":5,"527":1,"526":2,"524":6}'; 
    var_dump($json); 
    $arr=json_decode($json,true); 
    echo "<pre />"; 
    print_r($arr); 
    asort($arr); 
    print_r($arr); 
    $json=json_encode($arr); 
    var_dump($json); 
?> 
0

你要做的:

  1. 解析JSON到jsObject(使用jQuery等)
  2. 獲取對象的所有屬性(for(var propertyName in myObject)
  3. 遍歷它們以獲得最小值的值並將其寫入數組
  4. 直到所有屬性都在數組中。
2

做這樣的...

<?php 
    $arr = json_decode('{"528":5,"527":1,"526":2,"524":6}',true); //<--- converting the object to an array , by passing second arg true 
    asort($arr);// sorting the array in ascending .... 
    $arr = json_encode($arr); //encoding back ! 
    echo $arr; 

OUTPUT :

{"527":1,"526":2,"528":5,"524":6} 
+1

()'是肯定要走來這裏的路上。 +1(如果你問我,我會用'真',而不是'1'。雖然它在那個例子中,我認爲這是更具可讀性.. – hek2mgl

+0

@ hek2mgl相同,感謝您的註釋。編輯按你的意見。 –