Вопрос по дереву.

Cramac

Новичок
Вопрос по дереву.

Всем привет. Есть вот такое построение дерева:

store($arr,$p="0",$tab="");

function store($arr,$p,$tab)
{
foreach($arr as $id=>$item)
{
if($item['parent']==$p)
{
echo $tab."* $id ".$item['name']."<br>";
store($arr,$id,$tab."*");
}
}
}

Массив с данными выглядит так:
$arr=array(
"1"=>array("name"=>"&#239;&#229;&#240;&#226;&#251;&#233;","parent"=>0),
"2"=>array("name"=>"&#226;&#242;&#238;&#240;&#238;&#233;","parent"=>1),
"3"=>array("name"=>"&#242;&#240;&#229;&#242;","parent"=>0),
"4"=>array("name"=>"&#247;&#229;&#242;&#226;","parent"=>0),
"5"=>array("name"=>"&#239;&#255;&#242;","parent"=>0),
"6"=>array("name"=>"&#248;&#229;&#241;&#242;","parent"=>0),
"7"=>array("name"=>"&#241;&#229;&#228;&#252;&#236;&#238;&#233;","parent"=>3),
"8"=>array("name"=>"&#248;&#229;1&#241;&#242;","parent"=>0),
"9"=>array("name"=>"&#248;3&#229;&#241;&#242;","parent"=>7),
"10"=>array("name"=>"&#248;&#229;4&#241;&#242;","parent"=>0),
"11"=>array("name"=>"&#248;&#229;6&#241;&#242;","parent"=>9),
);

Вопрос. Как можно в отдельный временный массив записать все ИД от начала до конца ветки?

Пример, вот такая ветка получается:

* 1 name
** 2 name2
*** 12 name12
** 3 name3

Надо получить все ИД, т.е. 1, 2, 12, 3 чтобы с этими ИД можно было поработать.
 

antiportal

Guest
Как можно в отдельный временный массив записать все ИД от начала до конца ветки?
PHP:
...
if($item['parent']==$p)
{
$IDs[] = $id;
echo $tab."* $id ".$item['name']."<br>";
store($arr,$id,$tab."*");
}
...
В массиве $IDs будут все id по ветке.
 
Сверху