創建JSON我有一個問題,
我創建了多個JSON從陣列中的數據, 但我有問題輸出, JSON子或子菜單始終打印每一個元素, 是JSON孩子應該在打印在外地關係media_menu_parent_id不是成功在PHP
可以幫助我呢?
我可以張貼我的圖像表,怎麼把我reputaion < 10 :(
這是我的代碼控制器
header("Content-type: application/json; charset=utf-8");
$main_arr = array();
if (!$mediaId) {
$main_arr['status'] = "nok";
$main_arr['message'] = "Media id is null";
$json = json_encode($main_arr);
echo $json;
exit();
}
$where = array('media_menu.status'=>1 ,
'media_menu.media_menu_parent_id'=>0,
'media_menu.media_id'=>$mediaId
);
$count = $this->mediamenumodel->getCountMediaMenu($where);
$result = $this->mediamenumodel->getMediaMenu($where,$offest,$page);
if (!$result) {
$main_arr['status'] = "nok";
$main_arr['message'] = "Data not Found";
$json = json_encode($main_arr);
echo $json;
exit();
}
$main_arr['rowCount'] = $count;
$main_arr['media_id'] = $result[0]['media_id'];
$main_arr['media_name'] = $result[0]['media_name'];
$h=0;
foreach($result as $key => $value)
{
$where1 = array('media_menu_parent_id' => $value['media_menu_id']);
$count1 = $this->mediamenumodel->getCountMediaMenu($where1);
$getMediaMenu1 = $this->mediamenumodel->getMediaMenu($where1, $count1);
$arr['media_menu_id'] = $value['media_menu_id'];
$arr['media_menu_name'] = $value['media_menu_name'];
$arr['media_menu_url'] = $value['media_menu_url'];
$arr['thumbnail'] = !empty($value['thumbnail']) ? URL_CONTENT_MENU_THUMB.$value['thumbnail'] : "";
if ($count1>0) {
$i=0;
$arr['lewat'] = "ok";
foreach ($getMediaMenu1 as $key1 => $value1){
$arr['submenu'][$i]['media_menu_id'] = $value1['media_menu_id'];
$arr['submenu'][$i]['media_menu_name'] = $value1['media_menu_name'];
$arr['submenu'][$i]['media_menu_url'] = $value1['media_menu_url'];
$arr['submenu'][$i]['thumbnail'] = !empty($value1['thumbnail']) ? URL_CONTENT_MENU_THUMB.$value['thumbnail'] : "";
$i++;
}
}
$main_arrx[] = $arr;
$h++;
}
$main_arr['data'] = $main_arrx;
$json = json_encode($main_arr);
echo $json;
可以確信我的模型運行良好, 我試圖修改陣列格式,但沒有成功
,這是JSON輸出:
{
"rowCount": 5,
"media_id": "1",
"media_name": "sites",
"data": [
{
"media_menu_id": "5",
"media_menu_name": "Games",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "7",
"media_menu_name": "Games 2",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "4",
"media_menu_name": "Application",
"media_menu_url": null,
"thumbnail": "",
"submenu": [
{
"media_menu_id": "7",
"media_menu_name": "Games 2",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "3",
"media_menu_name": "Rich Content",
"media_menu_url": null,
"thumbnail": "",
"submenu": [
{
"media_menu_id": "7",
"media_menu_name": "Games 2",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "2",
"media_menu_name": "Top Download",
"media_menu_url": null,
"thumbnail": "",
"submenu": [
{
"media_menu_id": "7",
"media_menu_name": "Games 2",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "1",
"media_menu_name": "Hot Promo",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "10",
"media_menu_name": "Hot Promo 1",
"media_menu_url": null,
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
}
]
}
,我想我的輸出是這樣的:
{
"rowCount": 5,
"media_id": "1",
"media_name": "sites",
"data": [
{
"media_menu_id": "5",
"media_menu_name": "Games",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "7",
"media_menu_name": "Games 2",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "9",
"media_menu_name": "Games 2-2",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "8",
"media_menu_name": "Games 2-1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "6",
"media_menu_name": "Games 1",
"media_menu_url": null,
"thumbnail": ""
}
]
},
{
"media_menu_id": "4",
"media_menu_name": "Application",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "3",
"media_menu_name": "Rich Content",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "2",
"media_menu_name": "Top Download",
"media_menu_url": null,
"thumbnail": ""
},
{
"media_menu_id": "1",
"media_menu_name": "Hot Promo",
"media_menu_url": "",
"thumbnail": "",
"submenu": [
{
"media_menu_id": "10",
"media_menu_name": "Hot Promo 1",
"media_menu_url": null,
"thumbnail": ""
}
]
}
]
}
THX,
你能在表單中添加一個JSON輸出示例您想?我無法從你的問題中弄清楚。 – Ihsan 2013-03-25 09:46:19
檢查你的循環要插入的元素,在路上你不想。您的結構有些複雜。 – Ihsan 2013-03-25 10:11:20
嘗試添加'$ ARR [ '子菜單'] =陣列()''後如果($ COUNT1> 0)'。在下一個循環之前,可能你只是忘了tu truncate子菜單數組。 – Narek 2013-03-25 10:18:18