You are here

public static function UrlHelper::filterQueryParameters in Service Container 7

Same name and namespace in other branches
  1. 7.2 lib/Drupal/Component/Utility/UrlHelper.php \Drupal\Component\Utility\UrlHelper::filterQueryParameters()

Filters a URL query parameter array to remove unwanted elements.

Parameters

array $query: An array to be processed.

array $exclude: (optional) A list of $query array keys to remove. Use "parent[child]" to exclude nested items.

string $parent: Internal use only. Used to build the $query array key for nested items.

Return value

An array containing query parameters.

File

lib/Drupal/Component/Utility/UrlHelper.php, line 87
Contains \Drupal\Component\Utility\UrlHelper.

Class

UrlHelper
Helper class URL based methods.

Namespace

Drupal\Component\Utility

Code

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;
}