protected function __descendantDist($elements, $value) { if (!$value || !$this->_descendant) { return $elements; } return array_filter($elements, function ($element) use($value) { return $element->level <= $this->_descendant->level + $value; }); }