亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP遞歸函數為空<ul> </ ul>問題

PHP遞歸函數為空<ul> </ ul>問題

PHP
MMTTMM 2021-04-26 13:29:23
我正在從數據庫中構建遞歸php菜單功能。我的聯系: $menu = $vt->prepare("SELECT * FROM menus"); $menu->execute(array()); $menuSonuc = $menu->fetchAll(PDO::FETCH_OBJ);此函數生成空ul。<li> <a href=""><span class="sagok"></span>TITLE</a> <ul></ul></li>我的問題:如何防止此功能中的空ul?echo '<ul class="anamenu">';           foreach ($menuSonuc as $menum) {              if ($menum->katID == null) {                 echo '<li><a href=""><span class="asagiok"></span>' . $menum->baslik . '</a>';                 $id = $menum->id;                 kategoriler($menuSonuc, $id);                 echo '</li>';              }           }           echo '</ul>';           function kategoriler($menuSonuc, $id)           {              echo '<ul>';              foreach ($menuSonuc as $menum) {                 if ($menum->katID == $id) {                    echo '<li><a href=""><span class="sagok"></span>' . $menum->baslik . '</a>';                    kategoriler($menuSonuc, $menum->id);                    echo '</li>';                 }              }              echo '</ul>';           }
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

您必須添加一些檢查,請參見下面的代碼


    if(!empty($menuSonuc)){

    echo '<ul class="anamenu">';

           foreach ($menuSonuc as $menum) {





              if ($menum->katID == null) {


                 echo '<li><a href=""><span class="asagiok"></span>' . $menum->baslik . '</a>';

                 $id = $menum->id;

                 kategoriler($menuSonuc, $id);

                 echo '</li>';

              }

           }

    echo '</ul>';


}


function checkSub($menuSonuc, $id){

    foreach ($menuSonuc as $menum) {

         if ($menum->katID == $id) {

            return true;

         }

     }

     return false;

}

           function kategoriler($menuSonuc, $id)

           {

            if(!empty($menuSonuc)){

                  $index=0;

                  foreach ($menuSonuc as $menum) {

                     if ($menum->katID == $id) {

                        if($index==0){

                            echo '<ul>';

                        }

                        echo '<li><a href="">'.((checkSub($menuSonuc, $menum->id))?'<span class="sagok"></span>':''). $menum->baslik . '</a>';

                        kategoriler($menuSonuc, $menum->id);

                        echo '</li>';

                        $index++;

                     }

                  }

                  if($index>0){

                      echo '</ul>';

                  }


              }

           }


查看完整回答
反對 回復 2021-05-14
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

如果你空了,ul那就意味著$menuSonuc空了,它不會輸入foreach。您可以檢查是否為空以防止空ul


function kategoriler($menuSonuc, $id){

if(empty($menuSonuc)){

    return;

}


echo '<ul>';

foreach ($menuSonuc as $menum) {

    if ($menum->katID == $id) {

        echo '<li><a href=""><span class="sagok"></span>' . $menum->baslik . '</a>';

        kategoriler($menuSonuc, $menum->id);

        echo '</li>';

    }

}

echo '</ul>';

}

更新


如果仍然空著,ul那么問題就在于您正在檢查的情況$menum->katID == $id。


這意味著它$menum->katID與永遠不會相同$id。檢查這些值,您將解決您的問題?;蛘呓o我們一個您的數組的例子,以便我們檢查它們。


查看完整回答
反對 回復 2021-05-14
  • 2 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號