function buildTree($flatArray) {
$tree = [];
$stack = [];
foreach ($flatArray as $item) {
$node = $item;
$node['CHILD'] = [];
while (!empty($stack) && end($stack)['DEPTH_LEVEL'] >= $item['DEPTH_LEVEL']) {
array_pop($stack);
}
if (empty($stack)) {
$tree[] = $node;
} else {
end($stack)['CHILD'][] = $node;
}
$stack[] = &$node;
}
return $tree;
}
$sourceArray = []; // ваш исходный массив
$resultArray = buildTree($sourceArray);
print_r($resultArray);