Question: I'm trying to setup a form where some fields needs to be hidden depending on the user role. I'm doing this in my own module using hook\_form\_FORM\_ID\_alter. No problem with common text, email or link fields (e.g. $form['field\_companyname']['und'][0]['value']['#type']='hidden'). But for an image field or a multiple value file field the usual way won't work.

Anybody can give me a clue?

Answer: 
I just come to know when I press *ctlr+space bar*, in which its clearly written that behavior of the *keys* is undefined, orders is not maintain by *keys.*

![enter image description here](https://i.stack.imgur.com/3mIfZ.png)

*Arun George* said@ correctly that you have to use any sorting method to achieve your goal.

and for sorting may be this [link](https://stackoverflow.com/questions/7051785/when-jsonobject-keys-are-iterate-it-is-not-in-the-same-order-as-in-response-from) will help you.
There is also the method [names();](http://developer.android.com/reference/org/json/JSONObject.html#names%28%29)

> 
> Returns an array containing the string names in this object.
> 
> 
> 

Edit: returns names in undefined order. Suggestions: parse it on your own