下面是一個使用PHP遞歸函數處理多級菜單的示例代碼:
// 定義多級菜單數組
$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),
);
// 定義遞歸函數
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);
在上面的示例中,我們首先定義了一個包含多級菜單數據的數組 $menuItems
,然后定義了一個遞歸函數 buildMenu
,該函數接收兩個參數:菜單數組和父級菜單的ID。遞歸函數會遍歷菜單數組,將符合父級菜單ID的子菜單遞歸添加到HTML字符串中,并返回最終的HTML代碼。
最后,我們調用 buildMenu
函數并傳入 $menuItems
數組,以輸出多級菜單的HTML代碼。通過遞歸函數的方式,我們可以處理任意級別的菜單結構。