protected function internalRemove($key): bool
    {
        $this->generatorToArray();

        if (
            $this->pathSeparator
            &&
            \is_string($key)
            &&
            \strpos($key, $this->pathSeparator) !== false
        ) {
            $path = \explode($this->pathSeparator, (string) $key);

            if ($path !== false) {
                // crawl though the keys
                while (\count($path, \COUNT_NORMAL) > 1) {
                    $key = \array_shift($path);

                    if (!$this->has($key)) {
                        return false;
                    }

                    $this->array = &$this->array[$key];
                }

                $key = \array_shift($path);
            }
        }

        unset($this->array[$key]);

        return true;
    }
protected function internalRemove($key): bool
    {
        $this->generatorToArray();

        if (
            $this->pathSeparator
            &&
            \is_string($key)
            &&
            \strpos($key, $this->pathSeparator) !== false
        ) {
            $path = \explode($this->pathSeparator, (string) $key);

            if ($path !== false) {
                // crawl though the keys
                while (\count($path, \COUNT_NORMAL) > 1) {
                    $key = \array_shift($path);

                    if (!$this->has($key)) {
                        return false;
                    }

                    $this->array = &$this->array[$key];
                }

                $key = \array_shift($path);
            }
        }

        unset($this->array[$key]);

        return true;
    }
protected function internalRemove ( $ key ) : bool { $ this -> generatorToArray ( ) ; if ( $ this -> pathSeparator && \ is_string ( $ key ) && \ strpos ( $ key , $ this -> pathSeparator ) !== false ) { $ path = \ explode ( $ this -> pathSeparator , ( string ) $ key ) ; if ( $ path !== false ) { // crawl though the keys while ( \ count ( $ path , \ COUNT_NORMAL ) > 1 ) { $ key = \ array_shift ( $ path ) ; if ( ! $ this -> has ( $ key ) ) { return false ; } $ this -> array = & $ this -> array [ $ key ] ; } $ key = \ array_shift ( $ path ) ; } } unset ( $ this -> array [ $ key ] ) ; return true ; }
Internal mechanics of remove method.

@param mixed $key

@return bool
Internal mechanics of remove method .