rbawaskar rbawaskar - 2 years ago 268
PHP Question

Prevent json_encode associative array sorting

I have a associative array

[289] => Array(
'name'=> 'One'
[292] => Array(
'name'=> 'One'
[290] => Array(
'name'=> 'One'

After i use json_encode on this array. The keys are sorted, although i get it as JSON object.

Is there way to prevent this behaviour?

Answer Source

there is no standard that says it has to be in a certain order.

See this for a related question: How do you stop Chrome and Opera sorting JSON objects by Index ASC?

note: we're talking about a PHP function, but the result is basically javascript, so the statement about the non-existing standard applies as well.

btw: I have tested it with the following code. PHP itself doesnt seem to sort the array, firefox doesn't as well (according to the firebug console).

    $array = array();
    $array[289] = array('name'=>'One');
    $array[292] = array('name'=>'One');
    $array[290] = array('name'=>'One');
    $string = json_encode($array);
    var foo = <?=$string?>;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download