<?php
$a = array(
null => array(1, 2, 3, 4, 5),
2 => array(6, 7, 8, 9),
3 => array(10, 11),
10 => array(12),
12 => array(13)
);
$nodes = array(
1 => array(
"title" => 1,
),
2 => array(
"title" => 2,
),
3 => array(
"title" => 3,
),
4 => array(
"title" => 4,
),
5 => array(
"title" => 5,
),
6 => array(
"title" => 6,
),
7 => array(
"title" => 7,
),
8 => array(
"title" => 8,
),
9 => array(
"title" => 9,
),
10 => array(
"title" => 10,
),
11 => array(
"title" => 11,
),
12 => array(
"title" => 12,
),
13 => array(
"title" => 13,
),
);
function f($node)
{
global $nodes, $a;
if (!isset($nodes[$node]["children"])) {
$nodes[$node]["children"] = array();
}
if (isset($a[$node])) {
foreach($a[$node] as $child) {
array_push($nodes[$node]["children"], f($child));
}
}
return $nodes[$node];
}
f(null);
print_r($nodes[null]["children"]);
- Output for 5.4.2 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 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.19, 8.3.0 - 8.3.7
- Array
(
[0] => Array
(
[title] => 1
[children] => Array
(
)
)
[1] => Array
(
[title] => 2
[children] => Array
(
[0] => Array
(
[title] => 6
[children] => Array
(
)
)
[1] => Array
(
[title] => 7
[children] => Array
(
)
)
[2] => Array
(
[title] => 8
[children] => Array
(
)
)
[3] => Array
(
[title] => 9
[children] => Array
(
)
)
)
)
[2] => Array
(
[title] => 3
[children] => Array
(
[0] => Array
(
[title] => 10
[children] => Array
(
[0] => Array
(
[title] => 12
[children] => Array
(
[0] => Array
(
[title] => 13
[children] => Array
(
)
)
)
)
)
)
[1] => Array
(
[title] => 11
[children] => Array
(
)
)
)
)
[3] => Array
(
[title] => 4
[children] => Array
(
)
)
[4] => Array
(
[title] => 5
[children] => Array
(
)
)
)
preferences:
197.19 ms | 412 KiB | 243 Q