1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 22
|
||||||
1 | ||||||
Tommy Lacroix tree. Вывод многоуровневого меню27.05.2019, 21:19. Показов 3030. Ответов 9
Метки нет (Все метки)
Здравствуйте! Не смогли бы Вы помочь разобраться с методом Tommy Lacroix tree? В и-нете, информация о ссылках php скудноватая. Искал описание этого метода, но так ничего не нашёл.
Таблица базы данных: (`id`, `title`, `parent`) (685, 'Комплектующие к Apple', 0) (691, 'Запчасти iPad', 685) (692, 'Запчасти iPhone', 685) (693, 'Запчасти iPod', 685) (694, 'Запчасти Mac', 685) (695, 'iPad', 691) (696, 'iPad 2', 691) (697, 'iPad NEW (iPad 3)', 691) (698, 'iPad 4', 691) (699, 'iPad mini', 691) (700, 'iPhone', 692) (701, 'iPhone 3G/3GS', 692) (702, 'iPhone 4', 692) (703, 'iPhone 4S', 692) (704, 'iPhone 5', 692) (705, 'Микросхемы Apple', 685). Сам метод:
0
|
27.05.2019, 21:19 | |
Ответы с готовыми решениями:
9
Реализация многоуровневого меню Выравнивание многоуровневого меню Стилизация многоуровневого меню Построение многоуровневого меню выдает ошибку |
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
27.05.2019, 21:36 | 2 |
0
|
1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 22
|
|
27.05.2019, 21:58 [ТС] | 3 |
Например, из условия if &$node попадает в массив $tree, т.к $tree[$id] = &$node, но как $dataset[$node['parent']]['childs'][$id] оказывается в $tree - никак не пойму.
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
27.05.2019, 22:13 | 4 |
потому что в tree есть ссылка на node, который в свою очередь часть dataset.
Попробуй в цикл добавить var_dumpы, чтобы видеть что происходит.
0
|
1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 22
|
|
31.05.2019, 22:22 [ТС] | 5 |
Получается, после первого прохода по массиву, в foreach подставляется $dataset[$tree[$id]['parent']]['childs'][$id] as $id => &$node, а в else - $dataset[$tree[$id]['parent']]['childs'][$id], где вместо $node подставляется $tree[$id]?
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||||||
31.05.2019, 22:24 | 6 | |||||
Не понял что тут написано.
0
|
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 35
|
|
17.08.2019, 01:39 | 7 |
Andrey7, привет, по итогу ты понял как работает данный алгоритм, следовал за тобой по пятам на разных сайтах, не мог бы ты обьяснить как устроен данный метод
0
|
1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 22
|
|
17.08.2019, 21:01 [ТС] | 8 |
имя, привет! В $tree[$id] попадает всё, что имеет parent = 0, затем в else $node перезаписывается в $dataset[$node['parent']]['childs'][$id], где $node['parent'] будет соответствовать `id` родительской категории, выводя её. Внизу дописывается ['childs'] и в нём выводится вложенный массив с `id` того самого $node, что находится в else. Благодаря $tree[$id] = &$node(ссылка), $dataset[$node['parent']]['childs'][$id] попадает в $tree. Из-за того, что и в else присутствует так же &$node(ссылка) строится дерево массива. Понял как то так. Может я и ошибаюсь, но подробного описания так и не нашёл. Так что разбирался сам.
1
|
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 35
|
|
17.08.2019, 21:34 | 9 |
Andrey7, Спасибо за ответ, тоже сидел долго мозговал, как я понял данные меняются в дата и поскольку в tree попадает ссылка на эти данные а не просто копия то данные меняются и в tree, кстати как я понял ты проходишь или проходил курс по php, как он тебе, автор конечно хорошо поясняет но почти не дает домашних заданий, тебе удалось закрепить результат, как бы ты оценил пользу от этого курса, спасибо
0
|
1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 22
|
|
18.08.2019, 08:21 [ТС] | 10 |
имя. Ещё не прошёл, в середине курса. Трудновато, но стараюсь разобраться со всем, что даётся в уроках
0
|
18.08.2019, 08:21 | |
18.08.2019, 08:21 | |
Помогаю со студенческими работами здесь
10
запомнить позицию многоуровневого меню при переходе Как реализовать алгоритм вывода из бд многоуровневого меню? Где можно почитать про создание многоуровневого меню? Как сделать вывод многоуровневого списка из бд? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |