0 レビュー
1 回答
php-複雑な出力を生成するjson_encode
これまで、たとえば、単純なデータ行でPHPのjson_encode()を使用していました
{
"name":"bob",
"age":"22"
}
ただし、配列を含むJSONを返す必要があります。
出力例
{
"success":true,
"payload":
{
"venuedata":
{
"id":"1",
"name":"venue name"
},
"menus": [
{"menuid":"1","menuname":"food","items": [{"item":"pizza","cost":"$12.50"},{"item":"burger","cost":"$14.50"}]},
{"menuid":"2","menuname":"drinks","items": [{"item":"pint of beer","cost":"$5.50"}]}
]
}
}
これで、venuedataオブジェクトは1つのPDOクエリから取得され、メニューは別のクエリから取得され、各メニューのアイテムは別のクエリから取得されます。
json_encodeを使用してサンプルJSONを返すにはどうすればよいですか?
わからない
0
レビュー
答え :
解決策:
メニュー項目とメニューが外部キーで相互に接続されていると仮定した一般的な例。 メニューの配列を作成し、配列内のすべてのメニュー要素にメニュー項目を追加します。
$arrMenus = array();
$menus = getMenusFromDB();
foreach($menus as $menu) {
$menuItems = getMenuItemsFromDB($menu["id"]);
$arrMenuItems = array();
foreach($menuItems as $menuItem){
$arrMenuItems []= array(
"item" => $menuItem["item"],
"cost" => $menuItem["cost"]
);
}
$arrMenus []= array(
"menuid" => $menu["id"],
"menuname" => $menu["menuname"],
"items" => $arrMenuItems
);
}
次に、残りの情報を使用して配列を作成し、「payload」配列の一部として「menus」配列を追加します。
$obj = array(
"success" => true,
"payload" => array(
"venuedata" => array(
"id" => "2",
"name" => "venue name"
),
"menus" => $arrMenus
)
)
json_encode()を使用して配列を変換した後:
$json = json_encode($obj);
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。