protected function __ancestorDist($elements, $value) { if (!$value || !$this->_ancestor) { return $elements; } return array_filter($elements, function ($element) use($value) { return $element->level >= $this->_ancestor->level - $value; }); }