Craft\Neo_CriteriaModel::__siblingOf PHP Method

__siblingOf() protected method

protected __siblingOf ( array $elements, int\Neo_BlockModel $value ) : array
$elements array
$value int\Neo_BlockModel
return array
    protected function __siblingOf($elements, $value)
    {
        $value = $this->_getBlock($value);
        if (!$value) {
            return $elements;
        }
        $newElements = [];
        $mid = $this->_indexOfBlock($elements, $value);
        $total = count($elements);
        if ($mid < 0) {
            return [];
        }
        // Previous siblings
        for ($i = $mid - 1; $i >= 0; $i--) {
            $element = $elements[$i];
            if ($element->level < $value->level) {
                break;
            }
            if ($element->level == $value->level) {
                array_unshift($newElements, $element);
            }
        }
        // Next siblings
        for ($i = $mid + 1; $i < $total; $i++) {
            $element = $elements[$i];
            if ($element->level < $value->level) {
                break;
            }
            if ($element->level == $value->level) {
                $newElements[] = $element;
            }
        }
        return $newElements;
    }