Я столкнулся со следующей задачей:
Есть дерево которое хранится в mysql по алгоритму списка смежных вершин
id | parent_id | name | value
1 0 test1 10
2 1 test2 15
3 2 test3 25
4 2 test4 35
* parent_id указатель на родителя элемента
Нужно вывести данные в виде дерева и посчитать для каждого элемента сумму значений поля value всех его дочерних элементов. С выводом я справился с помощью рекурсии, а вот как посчитать сумму значений поля value всех дочерних элементов я не смог. Может кто то из вас мне подскажет как это реализовать?
$html = '';
seeElements(0);
function seeElements($parent = 0)
{
global $data;
global $html;
foreach($data as $val)
{
if($val['parent_id'] == $parent)
{
$html .= "<ol>";
$html .= "<li>".$val['name']. "</li>";
seeElements($val['id']);
$html .= "</ol>";
}
}
}
echo $html;
* в $data хранится массив с данными из таблицы mysql
пример:
$data = array(
array('id'=>,'parent_id'=>,'name'=>,'value'=>,),
array('id'=>,'parent_id'=>,'name'=>,'value'=>,)
....
);