0

生成されたリストから最初の ul タグが削除されるように、このコードを調整するにはどうすればよいですか? それは可能ですか?

これは私が得たい結果です:

<ul>  <--remove this initial tag
   <li></li>
   <li></li>
</ul>
<ul>
   <li></li>
   <li></li>
</ul>

リストジェネレーター

 function buildMenu($parent, $menu)
    {
       $menulist = "";
       if (isset($menu['parents'][$parent]))
       {
          $menulist .= "<ul>\n";
           foreach ($menu['parents'][$parent] as $itemId)
           {
              if(!isset($menu['parents'][$itemId]))
              {
                 $menulist .= "   <li><a href='".$menu['items'][$itemId]['menuURL']."'>".$menu['items'][$itemId]['menuName']."</a></li> \n";
              }
              if(isset($menu['parents'][$itemId]))
              {
                 $menulist .= "   <li><a href='".$menu['items'][$itemId]['menuURL']."'>".$menu['items'][$itemId]['menuName']."</a>";
                 $menulist .= buildMenu($itemId, $menu);
                 $menulist .= "</li> \n";
             }
             }
             $menulist .= "</ul> \n";
       }
       return $menulist;
    }?>
4

2 に答える 2

1

デリミエーターを設定します。$ firstが関数varsに追加され、次に下に向かって他のすべての呼び出しに対してFALSEが追加されていることに注意してください。

function buildMenu($parent, $menu, $first = TRUE)
{
   $menulist = "";
   if (isset($menu['parents'][$parent]))
   {
       $menulist .= $first ? "" : "<ul>\n";
       foreach ($menu['parents'][$parent] as $itemId)
       {
          if(!isset($menu['parents'][$itemId]))
          {
             $menulist .= "   <li><a href='".$menu['items'][$itemId]['menuURL']."'>".$menu['items'][$itemId]['menuName']."</a></li> \n";
          }
          if(isset($menu['parents'][$itemId]))
          {
             $menulist .= "   <li><a href='".$menu['items'][$itemId]['menuURL']."'>".$menu['items'][$itemId]['menuName']."</a>";
             $menulist .= buildMenu($itemId, $menu, FALSE);
             $menulist .= "</li> \n";
         }
         }
         $menulist .= "</ul> \n";
   }
   return $menulist;
}?>
于 2012-07-30T17:16:18.393 に答える
-1

交換

$menulist .= "<ul>\n";

$menulist .= strlen($menulist) ? "<ul>\n":"";
于 2012-07-30T17:19:07.797 に答える