将html导航菜单转换为动态php
我得到了这个html导航菜单,我需要把它转换成php。我尝试使用php数组和foreach,但我坚持使用子项。我现在不知道该怎么办。有什么想法吗 这就是我到现在为止所做的将html导航菜单转换为动态php,php,html,foreach,menuitem,Php,Html,Foreach,Menuitem,我得到了这个html导航菜单,我需要把它转换成php。我尝试使用php数组和foreach,但我坚持使用子项。我现在不知道该怎么办。有什么想法吗 这就是我到现在为止所做的 为父项创建一个数组。 //Nav Items $navItems = array( array( slug => "index.php", title => "Home" ), array( slug => "cruise-partners.php", title
//Nav Items
$navItems = array(
array(
slug => "index.php",
title => "Home"
),
array(
slug => "cruise-partners.php",
title => "Cruise Partners"
),
array(
slug => "destinations.php",
title => "Destinations"
),
array(
slug => "cruise-deals.php",
title => "Cruise Deals"
),
array(
slug => "cruise-type.php",
title => "Cruise Type"
),
array(
slug => "river-cruise.php",
title => "River Cruise"
),
array(
slug => "luxury.php",
title => "Luxury"
),
array(
slug => "contact.php",
title => "Contacts"
)
);
?>
<div class="containermargins clearfix">
<nav class="hmenu"data-responsive-menu="true"data-responsive-levels="">
<div class="responsivemenu collapse-button">
<div class="container-inner">
<div class="menuitem ">
<a data-toggle="collapse"data-target=".hmenu .collapse-button + .navbar-collapse"href="#"onclick="return false;"><span></span></a>
</div>
</div>
</div>
<div class="navbar-collapse collapse">
<div class="horizontalmenu clearfix">
<div class="container-inner">
<ul class="menu nav nav-pills nav-justified">
`<?php foreach ($navItems as $item) {
echo '<li class="menuitem submenu-icon-only toplevel-item"><a class="active" href=\"$item[slug]\">$item[title]</a></li>';
} ?>`
</ul>
</div>
</div>
``
这是我的html导航菜单
<div class="containermargins clearfix">
<nav class="hmenu"data-responsive-menu="true"data-responsive-levels="">
<div class="responsivemenu collapse-button">
<div class="container-inner">
<div class="menuitem ">
<a data-toggle="collapse"data-target=".hmenu .collapse-button + .navbar-collapse"href="#"onclick="return false;"><span></span></a>
</div>
</div>
</div>
<div class="navbar-collapse collapse">
<div class="horizontalmenu clearfix">
<div class="container-inner">
<ul class="menu nav nav-pills nav-justified">
<li class="menuitem submenu-icon-only toplevel-item">
<aclass="active"title=" Direction - Tailor-made Holidays"href="./home.html">Home</a>
<div class="menu-popup ">
<ul class="menu no-margins">
<li class="menuitem sub-item sub-item">
<a title="About Us"href="./home/about-us.html">About Us</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="FAQ"href="./home/faq.html">FAQ</a>
</li>
</ul>
</div>
</li>
<li class="menuitem submenu-icon-only toplevel-item">
<a title=" Partners"href="./partners.html">Partners</a>
<div class="menu-popup ">
<ul class="menu no-margins">
<li class="menuitem sub-item sub-item">
<a title="Carnival"href="./partners/carnivals.html">Carnivals</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Celebrity"href="./partners/Celebrity.html">Celebrity</a>
<div class="menu-popup ">
<ul class="menu no-margins">
<li class="menuitem sub-item sub-item">
<a title="Third Level 1"href="./partners/Celebrity/third-level-one.html">Third Level 1</a>
</li>
</ul>
</div>
</li>
<li class="menuitem sub-item sub-item">
<a title="Cunard"href="./partners/cunard.html">Cunard</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Holland America Line"href="./partners/holland-america-line.html">Holland America Line</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Norwegian"href="./partners/norwegian.html">Norwegian</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Princess"href="./partners/princess.html">Princess</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Star Clippers"href="./partners/star-clippers.html">Star Clippers</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="PO"href="./partners/p-and-o.html">PO</a>
</li>
<li class="menuitem sub-item sub-item">
<a title="Royal Caribbean"href="./partners/royal-caribbean.html">Royal Caribbean</a>
</li>
</ul>
</div>
</li>
<li class="menuitem toplevel-item">
<a title="Destinations"href="./destinations.html">Destinations</a>
</li>
<li class="menuitem toplevel-item">
<a title=" Deals"href="./deals.html"> Deals</a>
</li>
<li class="menuitem toplevel-item">
<a title=" Type"href="./type.html"> Type</a>
</li>
<li class="menuitem toplevel-item">
<a title="River "href="./river-.html">River </a>
</li>
<li class="menuitem toplevel-item">
<a title="Luxury"href="./luxury.html">Luxury</a>
</li>
<li class="menuitem toplevel-item">
<a title="Contacts"href="./contacts.html">Contacts</a>
</ul>
</div>
</div>
</div>
</nav>
您需要重新构造数组以包含子项。你可以使用我喜欢的,当筑巢很多
$navItems =
[
[
'title' => 'First Option'
'slug' => 'first-option'
'sub' => [
'title' => 'First Option Sub'
'slug' => 'first-option-sub'
],
[
'title' => 'First Option Sub 2'
'slug' => 'first-option-sub-2'
]
],
[
'title' => 'First Option'
'slug' => 'first-option'
'sub' => [
'title' => 'First Option Sub'
'slug' => 'first-option-sub'
]
]
]
在实际显示子项时,您需要遍历$navItem
数组并检查是否存在“sub”。如果它存在,只需以相同的方式循环它
我发现很难理解你的HTML,所以这可能不是完全相同的结构,但它应该给你的想法
<?php foreach ($navItems as $item) { ?>
<li class="menuitem submenu-icon-only toplevel-item">
<a class="active" href="/<?= $item['slug'] ?>">
<?= $item['title'] ?>
</a>
</li>
<?php if (isset($item['sub']) { ?>
<?php foreach($item['sub'] as $subItem) { ?>
<li class="sub-item>
<a href="/<? $subItem['slug'] ?>">
<?= $subItem['title'] ?>
</a>
</li>
<?php } ?>
<?php } ?>
<?php } ?>
您可以使用子项创建嵌套数组,并使用。
对其进行迭代。这样,您可以根据需要添加任意多的子级别。
$navItems = array(
array(
"slug" => "index.php",
"title" => "Home"
),
array(
"slug" => "cruise-partners.php",
"title" => "Cruise Partners",
"subitems" => array(
array(
"slug"=>"x.html",
"title"=>"sub-item.html"
)
)
),
array(
"slug" => "destinations.php",
"title" => "Destinations"
),
array(
"slug" => "cruise-deals.php",
"title" => "Cruise Deals"
),
array(
"slug" => "cruise-type.php",
"title" => "Cruise Type",
),
array(
"slug" => "river-cruise.php",
"title" => "River Cruise"
),
array(
"slug" => "luxury.php",
"title" => "Luxury"
),
array(
"slug" => "contact.php",
"title" => "Contacts"
)
);
function drawMenu($items){
echo "<ul>";
foreach($items as $item){
echo "<li><a href='".$item['slug']."'>".$item['title']."</a>";
if(isset($item['subitems'])){
echo "<ul>";
drawMenu($item['subitems']);
echo "</ul>";
}
echo "</li>";
}
echo "</ul>";
}
drawMenu($navItems);
$navItems=数组(
排列(
“slug”=>“index.php”,
“标题”=>“主页”
),
排列(
“slug”=>“cruise partners.php”,
“标题”=>“邮轮合作伙伴”,
“子项”=>数组(
排列(
“slug”=>“x.html”,
“title”=>“sub-item.html”
)
)
),
排列(
“slug”=>“destinations.php”,
“标题”=>“目的地”
),
排列(
“slug”=>“cruise deals.php”,
“标题”=>“邮轮交易”
),
排列(
“slug”=>“cruise type.php”,
“标题”=>“巡航类型”,
),
排列(
“slug”=>“river cruise.php”,
“标题”=>“河巡游”
),
排列(
“slug”=>“luxury.php”,
“标题”=>“豪华”
),
排列(
“slug”=>“contact.php”,
“标题”=>“联系人”
)
);
功能绘图菜单($items){
回声“”;
foreach($items作为$item){
回声“- ”;
如果(isset($item['subitems'])){
回声“
”;
drawMenu($item['subitems']);
回声“
”;
}
回声“ ”;
}
回声“
”;
}
drawMenu($navItems);
是的,我就是这么做的。我的脑子以前就卡住了,只需要一个想法,一个如何继续下去的线索。谢谢你的回答