protected static function sort($list)
{
foreach (array_keys($list) as $i) {
if (isset($list[$i]['children'])) {
$list[$i]['children'] = static::sort($list[$i]['children']);
}
}
$sorter = new \Punic\Comparer();
uasort($list, function ($a, $b) use($sorter) {
return $sorter->compare($a['name'], $b['name']);
});
return $list;
}