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 git.master, git.master_jit, rfc.property-hooks
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 ( ) ) ) ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
130.69 ms | 425 KiB | 5 Q