2012-05-14 16 views
1

私はデータベースからのデータとクライアントへの投稿を私に持ってくる関数を持っています。現時点では、通常の配列(出力はMyArray(a、b、c、d ..)のようなもの)としてデータを送信しますが、MyArray(a(b、c、d))にします。 Castegory(名前、ID、注文...)私は取得し、これを解析されたとき。..缶誰くださいHelp..Hereはすでに使用されるバージョンJSONを使って配列の配列を送る方法

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; 
    } 

EDIT少しöore詳細ください.. ための私のコードですこのような何か:

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

しかし、私がしたいことは

のようにomethingされます
`"Category0":("Key1": "Value1", "Key2": "Value2" .) 

"Category1":("Key1": "Value1", "Key2": "Value2" .)..` 

は、どのように私は、キーと値のペアを持つ多次元配列を送信することができますか?

+2

内のこれらのボタンは、単にjson_encodeにあなたの配列を渡す保存する理由を確認してください。あなたの配列をどのくらい深く入れ子にするのに実際的な制限はありません。 –

+0

@MarcB彼は彼の配列を変えたいと思う。 –

+0

古いコード 'mysql_ * 'を使って新しいコードを書いてください。それらはもはや維持されず、コミュニティは[非推奨プロセス](http://goo.gl/KJveJ)を開始しました。代わりに、[準備完了声明](http://goo.gl/vn8zQ)について学び、[PDO](http://php.net/pdo)または[MySQLi](http://php.net/)を使用する必要があります。 mysqli)。あなたが決定できない場合、[この記事](http://goo.gl/3gqF9)が選択に役立ちます。あなたが学びたい人は、[ここではかなり良いPDO関連のチュートリアルです](http://goo.gl/vFWnC)。 –

答えて

3

アレイの構築方法を変更してください。あなたがカテゴリ別にグループ化したい場合:

編集

コードネーム=>キーマップを使用して番号カテゴリを作成するように変更しました。

$category_map = array(); $cat_nr = 0; 
while ($this->f = mysql_fetch_assoc($this->r)) { 
    if (!isset($category_map[$this->f["button_category"]])) { 
     $category_key = "Category{$cat_nr}"; 
     $category_map[$this->f["button_category"]] = $category_key; 
     ++$cat_nr; 
    } else { 
     $category_key = $category_map[$this->f["button_category"]]; 
    } 
    $this->buttons[$category_key]][] = array(
     'category' => $this->f["button_category"], 
     "ID" => $this->f["ID"], 
     "name" => $this->f["button_name"], 
     "order_number" => $this->f["order_number"], 
    ); 
    $this->i++; 
} 

これは、のような配列生成:

<category 1>: [ 
    (CatName1, Id1, name1, ordernr1) 
    (CatName1, Id2, name2, ordernr2) 
], 
<category 2>: [ 
    (CatName2, Id3, name3, ordernr3) 
    (CatName2, Id4, name4, ordernr4) 
] 

そして最終結果にjson_encodeを使用します。

ところで、ないあなたがオブジェクト自体;-)

+0

私はiOS用のWebサービスアプリケーションを作成しています(ipad)、私はサーバーから各ユーザーのボタンを送信する、私はクライアント側のボタンをグループ化しますipad)をカテゴリーに使用します。そして、私はプログラミングにあまり経験はありません、私はオブジェクトの私の設計、サーバー&ポーリングデータとのコミュニケーションのいくつかの問題があるかもしれません。あなたの答えを – ilhnctn

+0

のおかげで、この答えは私が欲しかったものです。おかげで再び:) – ilhnctn

+0

私はこのような何かを得る、これを解析されたとき: 「Vaule」( 「キー1」:「値1」 「キー2」:「値2」 しかし、私は 「範疇」のようomethingされたいですか:( "Key1": "Value1" "Key2": "Value2" 。 ) 「区分1」:( 「キー1」:「値1」 「キー2」:「値2」 )..私は、キーと値のペアを持つ多次元配列を送信することができますどのように? – ilhnctn

関連する問題