2009-12-17 2 views
1

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


{ 
    "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, чтобы делать то, что я хочу ...

ответ

0
$returnArray['DateUpdated'] = '20091209'; 
$returnArray['UpdatUser'] = 'Bob'; 

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

1

Это должно сделать трюк

$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 и arrays

8

Try:

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

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

$json = json_encode($array); 
Смежные вопросы