DenVeroid
Новичок
рекурсия с определёной веткой?
имеется рекурсивная функция getListing(), которой передаётся массив разделов из БД в таком формате
всё работает отлично, строит карту как надо, вот пример чтобы построить всё карту
getListing($arr, 0, 0)
вопрос, как сделать если нужно вывести не всё карту а только одну ветку, в примеру если укажем
getListing($arr, 8, 0)
где 8 это ID раздела mustang
нужно чтобы получилась такая ветка
как такое сделать?
имеется рекурсивная функция getListing(), которой передаётся массив разделов из БД в таком формате
PHP:
$arr[$row['parent']][] = array('id'=>$row['id'], 'parent' => $row['parent'], 'name' => $row['name']);
PHP:
<?php
public function getListing($data, $parent, $lvl)
{
static $out = '';
if (!isset($data[$parent])) return;
$indent = str_repeat(' ', $lvl);
$out .= $indent."<ul>\n";
foreach($data[$parent] as $v)
{
$out .= $indent.' <li><a href="'.$v['id'].'">'.$v['name']."</a></li>\n";
$this->getListing($model, $v['id'], $lvl+1);
}
$out .= $indent."</ul>\n";
return $out;
}
?>
getListing($arr, 0, 0)
PHP:
Cars
-- chevy
-- ford
---- mustang
---- ranger
-- toyota
Food
-- fruit
---- apples
---- oranges
------- sunny
------- green
-- pasta
-- veges
Acura
BMW
getListing($arr, 8, 0)
где 8 это ID раздела mustang
нужно чтобы получилась такая ветка
PHP:
Cars
-- chevy
-- ford
---- mustang
---- ranger
-- toyota
Food
Acura
BMW