protected static function finalizeWithNames($data, $list, $flatList)
{
$result = array();
foreach ($list as $item) {
$name = $data[$item['id']];
if ($flatList) {
$result[$item['id']] = $name;
} else {
$result[$item['id']] = array('name' => $name);
if (count($item['children']) > 0) {
$result[$item['id']]['children'] = static::finalizeWithNames($data, $item['children'], $flatList);
}
}
}
return $result;
}