protected static function filterStructure($parent, $levels)
{
$thisResult = array();
if (in_array($parent['level'], $levels, true)) {
$thisResult[0] = $parent;
$thisResult[0]['children'] = array();
$addToSub = true;
} else {
$addToSub = false;
}
$subList = array();
foreach ($parent['children'] as $child) {
$subList = array_merge($subList, static::filterStructure($child, $levels));
}
if ($addToSub) {
$thisResult[0]['children'] = $subList;
} else {
$thisResult = $subList;
}
return $thisResult;
}