HTML Sitemap, парсинг строки браузера, массивый

Real1tySucks

Новичок
Добрый день всем.
Появилась необходимость перегнать карту сайта из xml файла в красивый HTMLный вид. Как одна из возможных реализация идеи - на входе имеет строки типа /category/1/2, /category/1/3, /category/1/4 и так далее. Задача - получить массив типа
PHP:
Array
(
    [category] => Array
        (
            [1] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 4
                    [3] => 5
                    [4] => 6
                    [5] => 7
                )

            [2] => Array
                (
                    [0] => 10
                    [1] => 11
                    [2] => 12
                    [3] => 39
                    [4] => 40
                    [5] => 41
                    [6] => 42
                    [7] => 8
                    [8] => 9
                )
)
Как это можно сгенерировать динамически, независимо от вложенности и тд? На данный момент такой массив генерируется методом
PHP:
foreach($elements as $test)
{
    $arr = explode('/',$test);
    if(count($arr)==1)
    {
        $outArray[]=$arr[0];
    }
    if(count($arr)==2)
    {
        if(!is_array($outArray[$arr[0]]))
            $outArray[$arr[0]]=array($arr[1]);
        if(!in_array($arr[1],$outArray[$arr[0]]))
            array_push($outArray[$arr[0]],$arr[1]);
    }
    if(count($arr)==3)
    {
        if(!is_array($outArray[$arr[0]][$arr[1]]))
        {
            $outArray[$arr[0]][$arr[1]]=array($arr[2]);
        }
        if(!in_array($arr[2],$outArray[$arr[0]][$arr[1]]))
            array_push($outArray[$arr[0]][$arr[1]],$arr[2]);
    }
}
Т.к. это явно не вариант, прошу подсказать, в какую сторону копать. Описывать ifами случай 8ми кратной и выше вложенности - это явно не то, к чему я стремился =) Заранее спасибо за помощь
 

С.

Продвинутый новичок
Как идея:
PHP:
$last= array_pop($arr);
foreach($arr as $level)
{
   $outArray= $outArray[$level];
}
$outArray[]= $last;
 
Сверху