SHOW:
|
|
- or go back to the newest paste.
| 1 | <?php | |
| 2 | ||
| 3 | #Вывод многоуровневого меню с неограниченным уровнем вложенности | |
| 4 | #https://webformyself.com/vyvod-mnogourovnevogo-menyu-s-neogranichennym-urovnem-vlozhennosti/ | |
| 5 | ||
| 6 | $pagelist = $db->query("SELECT * FROM categories;");
| |
| 7 | $cat = array(); | |
| 8 | while ($echo = $pagelist->fetchArray()) {
| |
| 9 | $cat[$echo['parentid']][] = array('id' => $echo['id'], 'parentid' => $echo['parentid'], 'name' => $echo['name']);
| |
| 10 | } | |
| 11 | ||
| 12 | //вывод каталога с помощью рекурсии | |
| 13 | function view_cat($arr,$parent_id = 0) {
| |
| 14 | //Условия выхода из рекурсии | |
| 15 | if(empty($arr[$parent_id])) {
| |
| 16 | return; | |
| 17 | } | |
| 18 | echo '<ul>'; | |
| 19 | //перебираем в цикле массив и выводим на экран | |
| 20 | for($i = 0; $i < count($arr[$parent_id]);$i++) {
| |
| 21 | echo '<li><a href="?category_id='.$arr[$parent_id][$i]['id']. | |
| 22 | '&parent_id='.$parent_id.'">' | |
| 23 | .$arr[$parent_id][$i]['name'].'</a>'; | |
| 24 | //рекурсия - проверяем нет ли дочерних категорий | |
| 25 | view_cat($arr,$arr[$parent_id][$i]['id']); | |
| 26 | echo '</li>'; | |
| 27 | } | |
| 28 | echo '</ul>'; | |
| 29 | ||
| 30 | } | |
| 31 | ||
| 32 | view_cat($cat); | |
| 33 | ?> |