class OptGroup in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Form/OptGroup.php \Drupal\Core\Form\OptGroup
Provides helpers for HTML option groups.
Hierarchy
- class \Drupal\Core\Form\OptGroup
Expanded class hierarchy of OptGroup
6 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 - OptGroupTest.php in core/
tests/ Drupal/ Tests/ Core/ Form/ OptGroupTest.php - OptionsDefaultFormatter.php in core/
modules/ options/ src/ Plugin/ Field/ FieldFormatter/ OptionsDefaultFormatter.php
File
- core/
lib/ Drupal/ Core/ Form/ OptGroup.php, line 8
Namespace
Drupal\Core\FormView 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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
OptGroup:: |
protected static | function | Iterates over an array building a flat array with duplicate keys removed. | |
OptGroup:: |
public static | function | Allows PHP array processing of multiple select options with the same value. |