<?php
$arr = array(
0 => array(
"text" => "eventyrer",
"children"=> array(
4 => array(
"text" => "news",
"children"=> array(
1=> array("text"=>"a")
)
),
5 => array(
"text" => "nyheter",
"children"=> array(
1=> array("text"=>"b")
)
)
)
),
1 => array(
"text" => "eventyrer2017",
"children"=> array(
6 => array(
"text" => "news",
"children"=> array(
1=> array("text"=>"c")
)
),
8 => array(
"text" => "nyheter",
"children"=> array(
1=> array("text"=>"d")
)
)
)
)
);
class Tree
{
private $data;
private $html;
public function buildTree(array $data, $parent_id)
{
$this->data = $data;
$this->html = [];
foreach ($data as $key => $value) {
$this->process($key, $value);
}
return $this->html;
}
private function process($parentKey, $value)
{
var_dump($value);
$this->html[$parentKey] = $value['text'];
if (array_key_exists('children', $value) && count($value['children'])) {
$this->html[$parentKey] .= '/';
$this->process($parentKey, $value['children']);
}
}
}
$tree = new Tree();
$ul = $tree->buildTree($arr, 0);
var_dump( $ul);
preferences:
71.39 ms | 402 KiB | 5 Q