首頁 > 資料庫 > mysql教程 > 如何建立遞歸 PHP 函數來從 MySQL 資料庫表產生分層選單樹?

如何建立遞歸 PHP 函數來從 MySQL 資料庫表產生分層選單樹?

Mary-Kate Olsen
發布: 2024-10-29 00:28:02
原創
945 人瀏覽過

How can I create a recursive PHP function to generate a hierarchical menu tree from a MySQL database table?

使用遞歸函數回顯選單樹

要使用遞迴函數從資料庫表產生分層選單樹,請考慮下列方法:

問題:

您希望建立一個遞歸函數,從MySQL 資料庫中提取分層選單樹。

情況:

表格包含欄位:

  • id
  • root(根父類別的ID,或或類別為null)
  • name

預期HTML 輸出:

<li><a href="#"><p class="Tier0">Datori</p></a>
    <ul style="display: block">
        <li><a href="#"><p class="Tier1">Cookies</p></a></li>
        <li><a href="#"><p class="Tier1">Events</p></a></li>
        <li><a href="#"><p class="Tier1">Forms</p></a></li>
        <li><a href="#"><p class="Tier1">Games</p></a></li>
        <li><a href="#"><p class="Tier1">Images</p></a>
            <ul>
                <li><a href="#"><p class="Tier2">CSS</p></a></li>
                <li><a href="#"><p class="Tier2">JavaScript</p></a></li>
                <li><a href="#"><p class="Tier2">JQuery</p></a></li>
            </ul>
        </li>
        <li><a href="#"><p class="Tier1">Navigations</p></a>
            <ul>
                <li><a href="#"><p class="Tier2">CSS</p></a></li>
                <li><a href="#"><p class="Tier2">JavaScript</p></a></li>
                <li><a href="#"><p class="Tier2">JQuery</p></a></li>
            </ul>
        </li>
        <li><a href="#"><p class="Tier1">Tabs</p></a></li>
    </ul>
</li>
<li><a href="#"><p class="Tier0">Washing Machines</p></a></li>
登入後複製

建議的PH🎜>

<code class="php">function recurse($categories, $parent = null, $level = 0)
{
    $ret = '<ul>';
    foreach($categories as $index => $category)
    {
        if($category['root'] == $parent)
        {
            $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
            $ret .= $this->recurse($categories, $category['id'], $level+1);
            $ret .= '</li>';
        }
    }
    return $ret . '</ul>';
}</code>
登入後複製
建議的PHP 函數:用法:
  1. 將類別清單提取到多維數組中。
使用類別陣列呼叫遞歸函數,輸出將是所需的 HTML 選單樹。

其他注意事項:
  • 在附加 UL 標籤之前檢查子計數以防止空 UL 標籤。
考慮使用資料庫列儲存子計數以提高效率。

以上是如何建立遞歸 PHP 函數來從 MySQL 資料庫表產生分層選單樹?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板