src/Drupal/Component/Utility/UrlHelper.php
public static function filterQueryParameters(array $query, array $exclude = array(), $parent = '') {
    // If $exclude is empty, there is nothing to filter.
    if (empty($exclude)) {
      return $query;
    }
    elseif (!$parent) {
      $exclude = array_flip($exclude);
    }

    $params = array();
    foreach ($query as $key => $value) {
      $string_key = ($parent ? $parent . '[' . $key . ']' : $key);
      if (isset($exclude[$string_key])) {
        continue;
      }

      if (is_array($value)) {
        $params[$key] = static::filterQueryParameters($value, $exclude, $string_key);
      }
      else {
        $params[$key] = $value;
      }
    }

    return $params;
  }
public static function filterQueryParameters(array $query, array $exclude = array(), $parent = '') {
    // If $exclude is empty, there is nothing to filter.
    if (empty($exclude)) {
      return $query;
    }
    elseif (!$parent) {
      $exclude = array_flip($exclude);
    }

    $params = array();
    foreach ($query as $key => $value) {
      $string_key = ($parent ? $parent . '[' . $key . ']' : $key);
      if (isset($exclude[$string_key])) {
        continue;
      }

      if (is_array($value)) {
        $params[$key] = static::filterQueryParameters($value, $exclude, $string_key);
      }
      else {
        $params[$key] = $value;
      }
    }

    return $params;
  }
public static function filterQueryParameters ( array $ query , array $ exclude = array ( ) , $ parent = '' ) { // If $exclude is empty, there is nothing to filter. if ( empty ( $ exclude ) ) { return $ query ; } elseif ( ! $ parent ) { $ exclude = array_flip ( $ exclude ) ; } $ params = array ( ) ; foreach ( $ query as $ key => $ value ) { $ string_key = ( $ parent ? $ parent . '[' . $ key . ']' : $ key ) ; if ( isset ( $ exclude [ $ string_key ] ) ) { continue ; } if ( is_array ( $ value ) ) { $ params [ $ key ] = static :: filterQueryParameters ( $ value , $ exclude , $ string_key ) ; } else { $ params [ $ key ] = $ value ; } } return $ params ; }
Filters a URL query parameter array to remove unwanted elements.

@param array $query
An array to be processed.
@param array $exclude
(optional) A list of $query array keys to remove. Use "parent[child]" to
exclude nested items.
@param string $parent
Internal use only. Used to build the $query array key for nested items.

@return
An array containing query parameters.
Filters a URL query parameter array to remove unwanted elements .