Вопрос в следующем, есть массив вида
Array
(
[0] => Array
(
[name_r] => Категория 1
[id] => 1
[parent] => 0
)
[1] => Array
(
[name_r] => Категория2
[id] => 2
[parent] => 0
)
[2] => Array
(
[name_r] => Категория3
[id] => 3
[parent] => 0
)
[3] => Array
(
[name_r] => Подкатегория1
[id] => 4
[parent] => 1
)
[4] => Array
(
[name_r] => Подкатегория2
[id] => 5
[parent] => 3
)
[5] => Array
(
[name_r] => Подкатегория3
[id] => 6
[parent] => 1
)
подскажите, пожалуйста самый простой способ получить дерево вида
-Категория 1
--Подкатегория1
--Подкатегория3
-Категория 2
-Категория 3
--Подкатегория2
с учетом того, что уровней вложенности всего 2, но категорий очень много
Спустя 9 часов, 31 минута, 43 секунды (5.11.2010 - 20:52) kirik написал(а):
Тут уже разбирались.
Спустя 13 минут, 17 секунд (5.11.2010 - 21:06) Sanchopansa написал(а):
Вот мой скрипт тебе:
<?php
$arr = array(
array(
'name_r' => 'Категория 1',
'id' => 1,
'parent' => 0
),
array(
'name_r' => 'Категория 2',
'id' => 2,
'parent' => 0
),
array(
'name_r' => 'Категория 3',
'id' => 3,
'parent' => 0
),
array(
'name_r' => 'Подкатегория 1',
'id' => 4,
'parent' => 1
),
array(
'name_r' => 'Подкатегория 2',
'id' => 5,
'parent' => 1
),
array(
'name_r' => 'Подкатегория 3',
'id' => 6,
'parent' => 3
),
array(
'name_r' => 'Подподкатегория 4',
'id' => 7,
'parent' => 6
),
array(
'name_r' => 'Подподкатегория 5',
'id' => 8,
'parent' => 4
)
);
function getTree($arr, $parent = 0, $rotation = 0)
{
$space = '';
$tmp_rot = $rotation;
while ($tmp_rot)
{
$space .= '-';
$tmp_rot--;
}
foreach ($arr as $cat){
if ($cat['parent'] == $parent)
{
echo $space.$cat['name_r'] . "\n\r";
getTree(&$arr, $cat['id'], $rotation+1);
}
}
}
getTree($arr);
?>
Спустя 1 день, 12 часов, 23 минуты, 30 секунд (7.11.2010 - 09:29) antonov_sa написал(а):
о годно, держи плюсик