des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Как обработать дерево значений?

есть дерево значений

--2 уровень 50
--2 уровень 50
----4 уровень 100
----4 уровень 100
---3 уровень 200
----4 уровень 300
----4 уровень 300
---3 уровень 600
--2 уровень 800
-1 уровень 900


как реализовать обход. выделенные уровни необходимо суммировать автоматом. остальне - инпуты.
  • Вопрос задан
  • 2326 просмотров
Решения вопроса 1
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
для меня что выше написано филькина грамота. а задача то оказывается решается двумя строчками
в общем две строчки кода
- в ребенке $sumq[$id_parent] += значение;
- в родителе $sumq[$id_parent] += $sumq[ид_объекта];
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Slavenin999
@Slavenin999
программист php/erlang/elixir/js
Комментировать
mr_T
@mr_T
Web-разработчик
Просто обходишь рекурсивно дерево, типа как в коде ниже. Я описал для объектов, ты можешь легко переделать под свои нужды в зависимости от того, в каком виде данные представлены. Ну и не очень понятно, что имелось в виду под "суммировать автоматом, остальное - инпуты".

function treeRec($tree, &$acc) {
    foreach ($list as $k => $item) {
        if (<твое условие>) $acc += $item -> value;
        if (count($item -> children) > 0) treeRec($item -> children, $acc);
    }
}

$result = 0;
treeRec($tree, $result);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы