<?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], ]));
You have javascript disabled. You will not be able to edit any code.
This script was stopped while abusing our resources