You are here

public static function BetterExposedFiltersHelper::flattenOptions in Better Exposed Filters 8.5

Same name and namespace in other branches
  1. 8.4 src/BetterExposedFiltersHelper.php \Drupal\better_exposed_filters\BetterExposedFiltersHelper::flattenOptions()

Flattens list of mixed options into a simple array of scalar value.

Parameters

array $options: List of mixed options - scalar, translatable markup or taxonomy term options.

bool $preserve_keys: TRUE if the original keys should be preserved, FALSE otherwise.

Return value

array Flattened list of scalar options.

5 calls to BetterExposedFiltersHelper::flattenOptions()
BetterExposedFiltersHelper::rewriteOptions in src/BetterExposedFiltersHelper.php
Rewrites a set of options given a string from the config form.
BetterExposedFiltersHelper::sortNestedOptions in src/BetterExposedFiltersHelper.php
Sort nested options alphabetically.
BetterExposedFiltersHelper::sortOptions in src/BetterExposedFiltersHelper.php
Sort options alphabetically.
Links::exposedFormAlter in src/Plugin/better_exposed_filters/filter/Links.php
Manipulate views exposed from element.
RadioButtons::exposedFormAlter in src/Plugin/better_exposed_filters/filter/RadioButtons.php
Manipulate views exposed from element.

File

src/BetterExposedFiltersHelper.php, line 119

Class

BetterExposedFiltersHelper
Defines a helper class for better exposed filters.

Namespace

Drupal\better_exposed_filters

Code

public static function flattenOptions(array $options, $preserve_keys = FALSE) {
  $flat_options = [];
  foreach ($options as $key => $choice) {
    if (is_array($choice)) {
      $flat_options = array_merge($flat_options, self::flattenOptions($choice));
    }
    elseif (is_object($choice) && isset($choice->option)) {
      $key = $preserve_keys ? $key : key($choice->option);
      $flat_options[$key] = current($choice->option);
    }
    else {
      $flat_options[$key] = (string) $choice;
    }
  }
  return $flat_options;
}