Преобразование плоского массива в дерево

У меня есть следующий массив:

array (size=543)
0 =>
array (size=3)
0 => string '3' (length=1)
1 => string '1' (length=1)
2 => string 'a' (length=1)
1 =>
array (size=3)
0 => string '5' (length=1)
1 => string '3' (length=1)
2 => string 'a' (length=1)
2 =>
array (size=3)
0 => string '6' (length=1)
1 => string '3' (length=1)
2 => string 'a' (length=1)
3 =>
array (size=3)
0 => string '8' (length=1)
1 => string '3' (length=1)
2 => string 'a' (length=1)
4 =>
array (size=3)
0 => string '9' (length=1)
1 => string '3' (length=1)
2 => string 'a' (length=1)
5 =>
array (size=3)
0 => string '10' (length=2)
1 => string '3' (length=1)
2 => string 'a' (length=1)
6 =>
array (size=3)
0 => string '11' (length=2)
1 => string '3' (length=1)
2 => string 'a' (length=1)
7 =>
array (size=3)
0 => string '12' (length=2)
1 => string '3' (length=1)
2 => string 'a' (length=1)
8 =>
array (size=3)
0 => string '14' (length=2)
1 => string '3' (length=1)
2 => string 'a' (length=1)

Как я могу преобразовать этот массив в «древовидный массив», чтобы я мог сгенерировать список HTML ul из этого? Я думал об использовании следующей функции:

function generatePageTree($datas, $parent = 0, $depth = 0){
if($depth > 1000) return ''; // Make sure not to have an endless recursion
$tree = '';
for($i=1, $ni=count($datas); $i < $ni - 1; $i++){
if($datas[$i][1] == $parent){
$tree .= str_repeat('-', $depth);
$tree .= 'fsdfdsdf' . '<br/>';
$tree .= $this->generatePageTree($datas, $datas[$i][0], $depth+1);
}
}
return $tree;
}

Но он генерирует пустой массив … Что не так, как я могу это сделать? Спасибо!

Так что я должен получить что-то вроде:

array(size=543)
0 =>
array(size=2)
0 => string '1'
1 => array(size=2)
0 => string '2'

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]