Построить дерево с ветвями в php
У меня переменная $ Categories возвращает следующие данные JSON. Я хотел бы построить дерево-> ветви в Php из этой переменной. Любая идея?
+ Общественный
- Электроника
.....- компьютер
........ + iPad-планшеты
..... + огни
..... + Домашняя заявка
+ Спорт
{
"categories": [
{
"ID": 0,
"Name": "Public",
"Parent": 0,
"created": null,
"modified": "2017-03-13T15:16:58+00:00"
},
{
"ID": 4,
"Name": "Electronics",
"Parent": 0,
"created": "2017-03-13T15:18:21+00:00",
"modified": "2017-03-13T15:18:21+00:00"
},
{
"ID": 5,
"Name": "Computer",
"Parent": 4,
"created": "2017-03-13T15:18:34+00:00",
"modified": "2017-03-13T15:18:34+00:00"
},
{
"ID": 12,
"Name": "iPad-Tablets",
"Parent": 5,
"created": "2017-05-15T13:55:38+00:00",
"modified": "2017-05-15T13:55:38+00:00"
}
]
}
1 ответ
Это решение работает для моей проблемы. Спасибо @DanMiller
function generatePageTree($datas, $parent = 0, $depth=0){
if($depth > 100) return ''; //Make sure not to have an endless recursion
$tree = '<ul>';
for($i=0, $ni=count($datas); $i < $ni; $i++){
if($datas[$i]->Parent == $parent){
$tree .= '<li>';
$tree .= $datas[$i]->Name;
$tree .= generatePageTree($datas, $datas[$i]->ID, $depth+1);
$tree .= '</li>';
}
}
$tree .= '</ul>';
return $tree;
}
$tree=generatePageTree($categoriesOptions);
echo $tree;