Real1tySucks
Новичок
Добрый день всем.
Появилась необходимость перегнать карту сайта из xml файла в красивый HTMLный вид. Как одна из возможных реализация идеи - на входе имеет строки типа /category/1/2, /category/1/3, /category/1/4 и так далее. Задача - получить массив типа
Как это можно сгенерировать динамически, независимо от вложенности и тд? На данный момент такой массив генерируется методом
Т.к. это явно не вариант, прошу подсказать, в какую сторону копать. Описывать ifами случай 8ми кратной и выше вложенности - это явно не то, к чему я стремился =) Заранее спасибо за помощь
Появилась необходимость перегнать карту сайта из 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]);
}
}