Вопрос по php, json – как отправить массив массива с помощью JSON

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

EDIT Немного подробностей, пожалуйста .. когда я проанализировал это, я получил что-то вроде этого:

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

Но я хочу что-то вроде

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

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

Как я могу отправить многомерный массив с парами ключ-значение?

нет, я не будуplease your question ... это звучит противно tereško
@MarcB Я думаю, он тоже хочет преобразовать свой массив. Ja͢ck
@ tere & # x161; ko Я новичок в PHP, братан :) я сделаю все, что смогу ... А теперь, не могли бы вы ответить на мой вопрос, от редактирования? ilhnctn
просто передайте свой массив в json_encode. нет практического предела тому, насколько глубоко вы вложите свои массивы. Marc B
Пожалуйста, прекратите писать новый код с древнимmysql_* функции. Они больше не поддерживаются, и сообщество началоdeprecation process , Вместо этого вы должны узнать оprepared statements и использовать либоPDO или жеMySQLi, Если вы не можете решить,this article поможет выбрать. Если вы хотите учиться,here is a quite good PDO-related tutorial. tereško

Ваш Ответ

2   ответа
3

http://php.net/manual/en/function.json-encode.php

string json_encode ( mixed $value [, int $options = 0 ] )
3

ь по категориям:

Edit

Код изменен для создания пронумерованных категорий с использованием имени = & gt; карта ключей.

$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 на конечный результат.

Кстати, не уверен, почему вы храните эти кнопки внутри самого объекта ;-)

и именно этот ответ я и хотел. еще раз спасибо:) ilhnctn
Я делаю приложение веб-службы для iOS (ipad), отправляю кнопки для каждого пользователя с сервера, сгруппирую кнопки на стороне клиента (ipad) для категорий. И я не настолько опытен в программировании, у меня могут быть некоторые проблемы с моим дизайном объектов, связью с сервером и т. Д. Спасибо за ваш ответ ilhnctn
например, я получаю выходные данные каждого внутреннего цикла (элементы каждой категории) как: 3 = ({ID = 4; name = Yemekler; & quot; order_number & quot; = 12;}); serf = ({ID = 51; name = serf; & quot; order_number & quot; = 4;}); Здесь "3" и "крепостной" являются названиями категорий .. я хочу получить их как: "Category0": "1" ... "Category1": "serf". ilhnctn
когда я анализировал это, я получаю что-то вроде этого: "Vaule" ("Key1": "Value1" & quot; Key2 ":" Value2 ". Но что я хочу, так это как" Category0 ":( & quot; Key1 & quot;" " ;: «Value1» «Key2»: «Value2».) «Category1» :( «Key1»: «Value1»; Key2 »:« Value2 ».) Как отправить? многомерный массив с парами ключ-значение? ilhnctn
@ilis Что?Vaule? Откуда это? Какой вклад?

Похожие вопросы