php - php json格式的问题
问题描述
我目前陷入 php 的 json 格式中。我在下面给出了我输出的 json。我需要做的是将当前json的格式设置为所需的格式。我缺少 JSON 格式的数组。谁可以帮我这个事。
我打印 json 输出的代码如下:
$menuHead=array();
$i=0;
foreach($res as $key => $value){
$i=$key+1;
//$menuHead[$i]['menuHead']=$value['category'];
if(isset($menuHead[$key]['menuHead'])){
if($menuHead[$key]['menuHead']==$value['category']){
$menuHead[$key]['data'][$i]['itemName']=$value['sub_category'];
$menuHead[$key]['data'][$i]['price']=$value['price'];
$menuHead[$key]['data'][$i]['description']=$value['description'];
$menuHead[$key]['data'][$i]['itemId']=$value['id'];
$menuHead[$key]['data'][$i]['customizable']=$value['customizable'];
}else{
$menuHead[$i]['menuHead']=$value['category'];
$menuHead[$i]['data'][$i]['itemName']=$value['sub_category'];
$menuHead[$i]['data'][$i]['price']=$value['price'];
$menuHead[$i]['data'][$i]['description']=$value['description'];
$menuHead[$i]['data'][$i]['itemId']=$value['id'];
$menuHead[$i]['data'][$i]['customizable']=$value['customizable'];
}
}else{
$menuHead[$i]['menuHead']=$value['category'];
$menuHead[$i]['data'][$i]['itemName']=$value['sub_category'];
$menuHead[$i]['data'][$i]['price']=$value['price'];
$menuHead[$i]['data'][$i]['description']=$value['description'];
$menuHead[$i]['data'][$i]['itemId']=$value['id'];
$menuHead[$i]['data'][$i]['customizable']=$value['customizable'];
}
}
$final['MenuList']=$menuHead;
echo json_encode($final);
当前格式:
{
"MenuList": {
"1": {
"menuHead": "Main Course",
"data": {
"1": {
"itemName": "Chicken Thai Curry",
"price": "599",
"description": "",
"itemId": "67",
"customizable": "1"
}
}
},
"2": {
"menuHead": "Refreshments",
"data": {
"2": {
"itemName": "Kingfisher Premium",
"price": "999",
"description": "Kingfisher beer",
"itemId": "69",
"customizable": "1"
},
"3": {
"itemName": "Mocktail",
"price": "999",
"description": "",
"itemId": "68",
"customizable": "1"
}
}
},
"4": {
"menuHead": "Rice biriyani",
"data": {
"4": {
"itemName": "Dal makni risotto",
"price": "499",
"description": "Dal makhni risotto",
"itemId": "66",
"customizable": "1"
}
}
}
}
}
所需格式:
{
"menuList": [
{
"menuHead": "In Steamer (Momos)",
"data": [
{
"itemName": "Tandoori Momo",
"description": "",
"price": "150",
"itemId": "16",
"customizable": "0"
},
{
"itemName": "Fried Momo Pork",
"price": "100",
"description": "",
"itemId": "15",
"customizable": "0"
}
]
},
{
"itemName": "Rice and Noodles",
"data": [
{
"sub_category": "Tandoori Momo",
"description": "",
"price": "150",
"itemId": "16",
"customizable": "0"
},
{
"itemName": "Fried Momo Pork",
"price": "100",
"description": "",
"itemId": "15",
"customizable": "0"
}
]
}
]
}
原始响应如下:
数组(4) { [0]=> 数组(7) { ["id"]=> 字符串(2) "67" ["restaurant_id"]=> 字符串(1) "5" ["category"]=> string(11) "主菜" ["sub_category"]=> string(18) "泰式咖喱鸡" ["price"]=> string(3) "599" ["description"]=> string(0) " " ["customizable"]=> string(1) "1" } [1]=> array(7) { ["id"]=> string(2) "69" ["restaurant_id"]=> string(1 ) "5" ["category"]=> string(12) "Refreshments" ["sub_category"]=> string(18) "Kingfisher Premium" ["price"]=> string(3) "999" ["description "]=> string(15) "翠鸟啤酒" ["可定制"]=>string(1) "1" } [2]=> array(7) { ["id"]=> string(2) "68" ["restaurant_id"]=> string(1) "5" ["category" ]=> string(12) "Refreshments" ["sub_category"]=> string(8) "Mocktail" ["price"]=> string(3) "999" ["description"]=> string(0) " " ["customizable"]=> string(1) "1" } [3]=> array(7) { ["id"]=> string(2) "66" ["restaurant_id"]=> string(1 ) "5" ["category"]=> string(13) "Rice biriyani" ["sub_category"]=> string(17) "Dal makni risotto" ["price"]=> string(3) "499" [ "description"]=> string(18) "Dal makhni risotto" ["customizable"]=>字符串(1)“1”}}
解决方案
如果你想要一个 javascript 兼容的数组,索引必须从 0 开始。最简单的方法是使用array_values()
:
$final['MenuList'] = array_values($menuHead);
推荐阅读
- reactjs - React 上的 onScroll 与 addEventListener
- java - 在 Java Mustache 中为模板添加格式化功能
- reactjs - Formik、Material UI Autocomplete 和 Firestore - 在哪里查询以查找数组参数
- python - 为什么我在 localhost:5000 中看不到我的容器化 docker flask 应用程序?
- ruby - 如何将已制成散列字符串的内容变成散列?
- python - 如何编写一个函数来平均数据帧列中每个数组中的每个第 n 个数字?
- php - 如何根据外部数组值优先级对多维PHP数组进行排序
- javascript - 在 Javascript 中使用 XPATH 从 WebElement 中检索值
- excel - 如何根据第一行和第一列中的值对一系列矩阵求和 - Excel VBA
- python - Python 3.8(刽子手游戏输入)