3v4l.org

run code in 300+ PHP versions simultaneously
<?php function treeify(array $input): array { $result = []; $path = []; foreach ($input as &$entry) { $entry['children'] = []; $depth = $entry['depth'] - 1; $path = \array_slice($path, 0, $depth); $path[] = &$entry; 0 === $depth ? $result[] = &$entry : $path[$depth - 1]['children'][] = &$entry; } return $result; } print_r(treeify([ ['name' => 'Root_1', 'depth' => 1], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 3], ['name' => 'Children', 'depth' => 3], ['name' => 'Children', 'depth' => 3], ['name' => 'Children', 'depth' => 4], ['name' => 'Children', 'depth' => 2], ['name' => 'Root_2', 'depth'=> 1], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 2], ['name' => 'Children', 'depth' => 3], ['name' => 'Root_3', 'depth' => 1], ['name' => 'Root_4', 'depth' => 1], ['name' => 'Children', 'depth' => 2], ]));

Abusive script

This script was stopped while abusing our resources

Output for 7.1.0 - 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.29, 8.2.0 - 8.2.23, 8.3.0 - 8.3.11
Array ( [0] => Array ( [name] => Root_1 [depth] => 1 [children] => Array ( [0] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) [1] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) [2] => Array ( [name] => Children [depth] => 2 [children] => Array ( [0] => Array ( [name] => Children [depth] => 3 [children] => Array ( ) ) [1] => Array ( [name] => Children [depth] => 3 [children] => Array ( ) ) [2] => Array ( [name] => Children [depth] => 3 [children] => Array ( [0] => Array ( [name] => Children [depth] => 4 [children] => Array ( ) ) ) ) ) ) [3] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) ) ) [1] => Array ( [name] => Root_2 [depth] => 1 [children] => Array ( [0] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) [1] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) [2] => Array ( [name] => Children [depth] => 2 [children] => Array ( [0] => Array ( [name] => Children [depth] => 3 [children] => Array ( ) ) ) ) ) ) [2] => Array ( [name] => Root_3 [depth] => 1 [children] => Array ( ) ) [3] => Array ( [name] => Root_4 [depth] => 1 [children] => Array ( [0] => Array ( [name] => Children [depth] => 2 [children] => Array ( ) ) ) ) )

preferences:
88.02 ms | 427 KiB | 5 Q