como enviar matriz de array usando JSON

Eu tenho uma função que me traz alguns dados do banco de dados e posts para o meu cliente. No momento, ele envia dados como uma matriz normal (a saída é algo como MyArray (a, b, c, d ..)), mas eu quero que seja MyArray (a (b, c, d)). Castegory (nome, ID, ordem ..) .. Alguém pode por favor ajudar .. Aqui está o meu código para a versão já usada

<code>public function get_button_template()
    {
        $this->q = "SELECT * FROM button_template ORDER BY order_number ASC";
        $this->r = mysql_query($this->q);
        if(mysql_num_rows($this->r) > 0)
        {        
            while($this->f = mysql_fetch_assoc($this->r))
            {
                $this->buttons[$this->i]["ID"] = $this->f["ID"];          
                $this->buttons[$this->i]["name"] = $this->f["button_name"];               
                $this->buttons[$this->i]["category"] = $this->f["button_category"];
                $this->buttons[$this->i]["order_number"] = $this->f["order_number"]; 
                $this->i++;
            }
        }
        return $this->buttons;
    }
</code>

EDITAR Um pouco mais detalhes por favor .. quando eu analisei isso eu recebo algo assim:

"Vaule"( "Key1": "Value1" "Key2": "Value2" .

Mas o que eu quero é algo como

<code> `"Category0":( "Key1": "Value1", "Key2": "Value2" . ) 

"Category1":( "Key1": "Value1", "Key2": "Value2" . )..`
</code>

Como posso enviar um array multidimensional com pares de valor-chave?

questionAnswers(2)

yourAnswerToTheQuestion