vonica
Новичок
Рекурсивный алгоритм, помогите с глубиной
Имеем массив:
вывод с помощью этой функции
Получается такой вот результат:
-Магазины
---Продукты питания
-----Диетическое питание
-----Детское питание
---Одежда
---Бытовая техника
-Производители
---Мебель
А хотелось бы вот так
Магазины
--Продукты питания
---Диетическое питание
---Детское питание
--Одежда
--Бытовая техника
Производители
--Мебель
Подскажите плиз, что подправить в функции, чтобы так получилось.
Заранее спасибо!
Имеем массив:
Код:
Array
(
[0] => Array
(
[catId] => 2
[catTitle] => Магазины
[catPid] => 0
[catLogo] =>
[catPriority] => 0
[nodes] => Array
(
[0] => Array
(
[catId] => 3
[catTitle] => Продукты питания
[catPid] => 2
[catLogo] =>
[catPriority] => 0
[nodes] => Array
(
[0] => Array
(
[catId] => 1
[catTitle] => Диетическое питание
[catPid] => 3
[catLogo] =>
[catPriority] => 0
)
[1] => Array
(
[catId] => 7
[catTitle] => Детское питание
[catPid] => 3
[catLogo] =>
[catPriority] => 0
)
)
)
[1] => Array
(
[catId] => 4
[catTitle] => Одежда
[catPid] => 2
[catLogo] =>
[catPriority] => 0
)
[2] => Array
(
[catId] => 8
[catTitle] => Бытовая техника
[catPid] => 2
[catLogo] =>
[catPriority] => 0
)
)
)
[1] => Array
(
[catId] => 5
[catTitle] => Производители
[catPid] => 0
[catLogo] =>
[catPriority] => 0
[nodes] => Array
(
[0] => Array
(
[catId] => 6
[catTitle] => Мебель
[catPid] => 5
[catLogo] =>
[catPriority] => 0
)
)
)
)
PHP:
function print_array($ar)
{
static $count;
if (is_array($ar)) $count = (isset($count)) ? ++$count : 0;
if (!is_array($ar)) { return; }
while(list($k, $v) = each($ar))
{
if ($k=='catTitle') $catTitle=$v;
if ($k=='catPid' && (!is_array($v))) echo "<option value='$v'>".str_repeat("-", $count).$catTitle.$count."</options><br>";
if ($k=='nodes' and $v=='Array') --$count;
if (is_array($v))
{
print_array($v);
}
}
$count--;
}
-Магазины
---Продукты питания
-----Диетическое питание
-----Детское питание
---Одежда
---Бытовая техника
-Производители
---Мебель
А хотелось бы вот так
Магазины
--Продукты питания
---Диетическое питание
---Детское питание
--Одежда
--Бытовая техника
Производители
--Мебель
Подскажите плиз, что подправить в функции, чтобы так получилось.
Заранее спасибо!