Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将html导航菜单转换为动态php_Php_Html_Foreach_Menuitem - Fatal编程技术网

将html导航菜单转换为动态php

将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

我得到了这个html导航菜单,我需要把它转换成php。我尝试使用php数组和foreach,但我坚持使用子项。我现在不知道该怎么办。有什么想法吗

这就是我到现在为止所做的

  • 为父项创建一个数组。
    //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"
    )
    
    );
    
    ?>
    
  • 使用foreach并回显它们

          <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);
    是的,我就是这么做的。我的脑子以前就卡住了,只需要一个想法,一个如何继续下去的线索。谢谢你的回答