溫馨提示×

利用PHP遞歸函數(shù)處理多級菜單

PHP
小樊
147
2024-04-26 19:56:48
欄目: 編程語言

下面是一個使用PHP遞歸函數(shù)處理多級菜單的示例代碼:

// 定義多級菜單數(shù)組
$menuItems = array(
    array('id' => 1, 'name' => '菜單1', 'parent_id' => 0),
    array('id' => 2, 'name' => '子菜單1.1', 'parent_id' => 1),
    array('id' => 3, 'name' => '子菜單1.2', 'parent_id' => 1),
    array('id' => 4, 'name' => '菜單2', 'parent_id' => 0),
    array('id' => 5, 'name' => '子菜單2.1', 'parent_id' => 4),
);

// 定義遞歸函數(shù)
function buildMenu($items, $parentId = 0) {
    $html = '<ul>';
    foreach ($items as $item) {
        if ($item['parent_id'] == $parentId) {
            $html .= '<li>' . $item['name'];
            $html .= buildMenu($items, $item['id']);
            $html .= '</li>';
        }
    }
    $html .= '</ul>';
    return $html;
}

// 輸出多級菜單
echo buildMenu($menuItems);

在上面的示例中,我們首先定義了一個包含多級菜單數(shù)據(jù)的數(shù)組 $menuItems,然后定義了一個遞歸函數(shù) buildMenu,該函數(shù)接收兩個參數(shù):菜單數(shù)組和父級菜單的ID。遞歸函數(shù)會遍歷菜單數(shù)組,將符合父級菜單ID的子菜單遞歸添加到HTML字符串中,并返回最終的HTML代碼。

最后,我們調(diào)用 buildMenu 函數(shù)并傳入 $menuItems 數(shù)組,以輸出多級菜單的HTML代碼。通過遞歸函數(shù)的方式,我們可以處理任意級別的菜單結(jié)構(gòu)。

0