Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. OptGroup.php

class OptGroup

Provides helpers for HTML option groups.

Hierarchy

  • class \Drupal\Core\Form\OptGroup

Expanded class hierarchy of OptGroup

5 files declare their use of OptGroup
EntityReferenceItem.php in core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php
InOperator.php in core/modules/views/src/Plugin/views/filter/InOperator.php
ListItemBase.php in core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
OptionsDefaultFormatter.php in core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php
OptionsWidgetBase.php in core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/OptionsWidgetBase.php
2 string references to 'OptGroup'
form_select_options in core/includes/form.inc
Converts the options in a select element into a structured array for output.
TreeBuildingRules::evaluate in vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php
Evaluate the rule for the current tag name.

File

core/lib/Drupal/Core/Form/OptGroup.php, line 8

Namespace

Drupal\Core\Form
View source
class OptGroup {
    
    /**
     * Allows PHP array processing of multiple select options with the same value.
     *
     * Used for form select elements which need to validate HTML option groups
     * and multiple options which may return the same value. Associative PHP
     * arrays cannot handle these structures, since they share a common key.
     *
     * @param array $array
     *   The form options array to process.
     *
     * @return array
     *   An array with all hierarchical elements flattened to a single array.
     */
    public static function flattenOptions(array $array) {
        $options = [];
        static::doFlattenOptions($array, $options);
        return $options;
    }
    
    /**
     * Iterates over an array building a flat array with duplicate keys removed.
     *
     * This function also handles cases where objects are passed as array values.
     *
     * @param array $array
     *   The form options array to process.
     * @param array $options
     *   The array of flattened options.
     */
    protected static function doFlattenOptions(array $array, array &$options) {
        foreach ($array as $key => $value) {
            if (is_object($value) && isset($value->option)) {
                static::doFlattenOptions($value->option, $options);
            }
            elseif (is_array($value)) {
                static::doFlattenOptions($value, $options);
            }
            else {
                $options[$key] = $value;
            }
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
OptGroup::doFlattenOptions protected static function Iterates over an array building a flat array with duplicate keys removed.
OptGroup::flattenOptions public static function Allows PHP array processing of multiple select options with the same value.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal