我已经为网页中显示的菜单提取了json输出。 我想将其转换为菜单和子菜单。我试过循环但它不起作用。请提前帮助我,谢谢。
$output = json_encode(array($menu_main_row['menu_name'] => $sub_menu));
Json输出:
{"Home":"[{\"Create\":\"create.php\"},{\"Edit\":\"edit.php\"}]"}
{"Projects":"[{\"My Projects\":\"myprojects.php\"},{\"My reports\":\"reports.php\"}]"}
这是我使用的foreach循环。
foreach($value as $main_menu_name=>$arr_val_sub)
{
echo "<ul>";
echo $main_menu_name;
$val=json_decode($arr_val_sub);
foreach ($val as $menu_name=>$menu_url)
{
echo $menu_name;
echo "<br>";
echo $menu_url;
}
}
主菜单名称是打印,但是当我打印子菜单名称和URL时,它打印为0 1.
答案 0 :(得分:1)
你错过了另一个挖掘json的步骤。 $menu_url
是要解析的另一个json。下面的代码修复了它
foreach($value as $main_menu_name=>$arr_val_sub)
{
echo "<ul>";
echo $main_menu_name;
$val=json_decode($arr_val_sub);
foreach ($val as $menu_name=>$menu_url)
{
$submenu=new RecursiveArrayIterator($menu_url);
foreach ($submenu as $submenu_name=>$submenu_url)
{
echo $submenu_name;
echo "<br>";
echo $submenu_url;
echo "<br>";
}
}
}