public function withoutPair(string $key, string ...$keys): self
    {
        $keys[] = $key;
        $keys_to_remove = array_intersect($keys, array_column($this->pairs, 0));
        if ([] === $keys_to_remove) {
            return $this;
        }

        $filter = static function (array $pair) use ($keys_to_remove): bool {
            return !in_array($pair[0], $keys_to_remove, true);
        };

        $clone = clone $this;
        $clone->pairs = array_filter($this->pairs, $filter);

        return $clone;
    }
public function withoutPair(string $key, string ...$keys): self
    {
        $keys[] = $key;
        $keys_to_remove = array_intersect($keys, array_column($this->pairs, 0));
        if ([] === $keys_to_remove) {
            return $this;
        }

        $filter = static function (array $pair) use ($keys_to_remove): bool {
            return !in_array($pair[0], $keys_to_remove, true);
        };

        $clone = clone $this;
        $clone->pairs = array_filter($this->pairs, $filter);

        return $clone;
    }
public function withoutPair ( string $ key , string ... $ keys ) : self { $ keys [ ] = $ key ; $ keys_to_remove = array_intersect ( $ keys , array_column ( $ this -> pairs , 0 ) ) ; if ( [ ] === $ keys_to_remove ) { return $ this ; } $ filter = static function ( array $ pair ) use ( $ keys_to_remove ) : bool { return ! in_array ( $ pair [ 0 ] , $ keys_to_remove , true ) ; } ; $ clone = clone $ this ; $ clone -> pairs = array_filter ( $ this -> pairs , $ filter ) ; return $ clone ; }
Returns an instance without the specified keys.

This method MUST retain the state of the current instance, and return
an instance that contains the modified component

@param string $key     the first key to remove
@param string ...$keys the list of remaining keys to remove
Returns an instance without the specified keys .