@ 2019-09-03T10:16:25Z <?php
$two_dimention = [
["id" => 4, "name" => "Home", "parent" => 0, "depth" => 0],
["id" => 5, "name" => "Menu 1", "parent" => 0, "depth" => 0],
["id" => 6, "name" => "Menu 2", "parent" => 0, "depth" => 0],
["id" => 8, "name" => "Menu 2.1", "parent" => 6, "depth" => 1],
["id" => 10, "name" => "Menu 2.1.1", "parent" => 8, "depth" => 2],
["id" => 11, "name" => "Menu 2.1.2", "parent" => 8, "depth" => 2],
["id" => 9, "name" => "Menu 2.2", "parent" => 6, "depth" => 1],
["id" => 7, "name" => "Menu 3", "parent" => 0, "depth" => 0],
["id" => 18, "name" => "Menu 3.1", "parent" => 7, "depth" => 1],
];
function makeRecursive($d, $r = 0, $pk = 'parent', $k = 'id', $c = 'children')
{
$m = [];
foreach ($d as $e) {
isset($m[$e[$pk]]) ?: $m[$e[$pk]] = [];
isset($m[$e[$k]]) ?: $m[$e[$k]] = [];
$m[$e[$pk]][] = array_merge($e, [$c => &$m[$e[$k]]]);
}
return $m[$r]; // remove [0] if there could be more than one root nodes
}
function nested2ul($data)
{
$result = [];
if (sizeof($data) > 0) {
$result[] = '<ul>';
foreach ($data as $entry) {
$result[] = sprintf(
'<li>%s %s</li>',
$entry['name'],
nested2ul($entry['children'])
);
}
$result[] = '</ul>';
}
return implode($result);
}
$temp= makeRecursive($two_dimention);
echo nested2ul($temp);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.1.25 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.4 , 8.3.6 <ul><li>Home </li><li>Menu 1 </li><li>Menu 2 <ul><li>Menu 2.1 <ul><li>Menu 2.1.1 </li><li>Menu 2.1.2 </li></ul></li><li>Menu 2.2 </li></ul></li><li>Menu 3 <ul><li>Menu 3.1 </li></ul></li></ul> Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
<ul><li>Home </li><li>Menu 1 </li><li>Menu 2 <ul><li>Menu 2.1 <ul><li>Menu 2.1.1 </li><li>Menu 2.1.2 </li></ul></li><li>Menu 2.2 </li></ul></li><li>Menu 3 <ul><li>Menu 3.1 </li></ul></li></ul> preferences:dark mode live preview
190.79 ms | 402 KiB | 181 Q