1

データベースからいくつかのデータを取得し、クライアントに投稿する関数があります。現時点では、データを通常の配列として送信します(出力は MyArray (a、b、c、d ..) のようなものです)が、MyArray (a(b、c、d)) にしたい..のようにカステゴリー(名前、ID、注文...)..誰か助けてください..これは、すでに使用されているバージョンの私のコードです

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

編集少し詳細をお願いします..これを解析すると、次のような結果が得られます。

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

しかし、私が欲しいのは次のようなものです

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

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

キーと値のペアを含む多次元配列を送信するにはどうすればよいですか?

4

2 に答える 2

3

json_encode 関数を使用します。http://php.net/manual/en/function.json-encode.php

string json_encode ( mixed $value [, int $options = 0 ] )
于 2012-05-14T09:05:47.617 に答える
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、最終結果で使用します。

ところで、これらのボタンをオブジェクト自体の中に保存する理由がわかりません;-)

于 2012-05-14T09:11:24.810 に答える