Привет всем Помогите составить функцию на php имеется массив групп на сайте Код (Text): $groups_arr[id] = array('parent_id' => ХХХ, 'name' => ХХХ); где id это id группы, parent_id - id группы родителя, name - имя группы нужно составить функцию которая бы возвращала массив начиная с текущей группы и до корневой группы. Массив нужен для составления строки пути и для подсветки групп которые участвуют в пути. Массив должен выглядеть так: Код (Text): array() { [1] array() { ["parent_id"] = 0 ["name"] = Группа 1 } [2] array() { ["parent_id"] = 1 ["name"] = Подгруппа 1.1 } [3] array() { ["parent_id"] = 2 ["name"] = Подгруппа подгруппы 1.1.1 } } пробовал что то подобное вызывая getTree($groups_arr, ТЕКУЩАЯ ПОДГРУППА) Код (Text): function getTree($arr, $id) { $path = array(); $path[] = array(id => $id, 'parent_id' => $arr[$id]['parent_id'], 'name' => $arr[$id['name']); if ($arr[$id]['parent_id'] != 0) $path[] = getTree($arr, $arr[$id]['parent_id']); return $path; } но получается массив не той структуры. уже все перепробовал, подскажите кто знает
Код (Text): $groups= array( '1' => array("parent_id"=>0,"name"=>"Группа 1"), '2' => array("parent_id"=>1,"name"=>"Группа 1.1"), '3' => array("parent_id"=>2,"name"=>"Группа 1.1.1"), '4' => array("parent_id"=>0,"name"=>"Группа 2"), '5' => array("parent_id"=>4,"name"=>"Группа 2.1"), '6' => array("parent_id"=>5,"name"=>"Группа 2.1.1") ); // получить дерево от ветки к корню в параметрах: массив групп и номер текущей группы function getGroupTree($grps,$nodNumber) { // массив на выход $tree=array(); $parentNumber=$grps[$nodNumber]["parent_id"]; if ($parentNumber!==0) { $tree=getGroupTree($grps,$parentNumber); array_push($tree,$grps[$nodNumber]); } else { $tree[]=$grps[$nodNumber]; } return $tree; } $ntree=getGroupTree($groups,3); var_dump($ntree); типа того.