генерировать многомерный массив JSON из PHP / MySQL - PullRequest
1 голос
/ 17 декабря 2009

Я хочу создать объект JSON, который выглядит как в примере ниже.


{
    "Products": [
        {
            "ProductNo": "11111",
            "Descr": "Myproduct-1",
            "Price": "225.36"
        },
        {
            "ProductNo": "11112",
            "Descr": "Myproduct-2",
            "Price": "235.46"
        },
        {
            "ProductNo": "11113",
            "Descr": "Myproduct-3",
            "Price": "245.56"
        },
        {
            "ProductNo": "11114",
            "Descr": "Myproduct-4",
            "Price": "255.56"
        } 
    ],
    "DateUpdated" : "20091209",
    "UpdatUser" : "Bob" 
}

Первая часть может быть сгенерирована из базы данных MySQL с использованием mysql_fetch_assoc и array_push:

while ($row = mysql_fetch_assoc($result)) 
{ 
  array_push($returnArray,  $row); 
}

Вторая часть должна быть добавлена ​​в конце программы в программе. У меня проблемы с манипулированием массивами в PHP, чтобы делать то, что я хочу ...

Ответы [ 3 ]

8 голосов
/ 17 декабря 2009

Попробуйте:

$array = array (
    'Products' => array (),
    'DateUpdated' => '20091209',
    'UpdateUser' => 'Bob',
);

while ($row = mysql_fetch_assoc($result))
    $array['Products'][] = $row;

$json = json_encode($array);
1 голос
/ 17 декабря 2009

Это должно сработать

$productArray = array();
while ($row = mysql_fetch_assoc($result)) 
{ 
  array_push($productArray,  $row); 
}

$returnArray['Products'] = $productArray;
$returnArray['DateUpdated'] = $dateUpdated; // 20091209 in your example
$returnArray['UpdatUser'] = $updatUser; // Bob in your example

$jsonEncoded = json_encode($returnArray);

Подробнее о json_encode и массивах

0 голосов
/ 17 декабря 2009
$returnArray['DateUpdated'] = '20091209';
$returnArray['UpdatUser'] = 'Bob';

А затем json_encode возвращаемого массива, и вы должны быть установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...