下面是一個使用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)。