programmieren:php:rekursives_sortieren_version2
rekursives sortieren Version 2
für die Erstellung eines Menüs mit UL LI
Um eine Ausgabe eines in einer Datenbank gespeicherten Menüs richtig aufzubereiten mus man rekursiv vorgehen.
Beispiel: Datenbank mit folgenden Feldern id- parent_id - text
Ausgabe mit <UL> <LI>
function build_list($arr) { $html = '<ul>'; foreach ($arr as $id => $val) { $html .= '<li>' . htmlspecialchars($val['name']) . ' (' . $id . ')'; if ($val['children']) { $html .= build_list($val['children']); } $html .= '</li>'; } $html .= '</ul>'; return $html; } // SQL Abfrage erstellen $query = 'SELECT id, title, parent_id FROM #__quickfaq_categories'; // Datenbank Abfrage $db =& JFactory::getDBO(); $db->setQuery($query); $result = $db->loadObjectList(); foreach ($result as $row) { $sites[$row->id] = array( 'parent_id' => $row->parent_id, 'name' => $row->title, 'children' => array() ); } foreach ($sites as $site_id => $site) { $sites[$site['parent_id']]['children'][$site_id] =& $sites[$site_id]; } $sites = $sites[0]['children']; echo build_list($sites);
programmieren/php/rekursives_sortieren_version2.txt · Zuletzt geändert: 25/12/2020 12:17 von conny