class ArrayChoiceList implements ChoiceListInterface
A list of choices with arbitrary data types.
The user of this class is responsible for assigning string values to the choices. Both the choices and their values are passed to the constructor. Each choice must have a corresponding value (with the same array key) in the value array.
protected array | $choices | The choices in the list. | |
protected array | $structuredValues | The values indexed by the original keys. | |
protected int[]|string[] | $originalKeys | The original keys of the choices array. | |
protected callable | $valueCallback | The callback for creating the value for a choice. |
__construct(iterable $choices, callable $value = null) Creates a list with the given choices and values. | ||
array | getChoices() Returns all selectable choices. | |
string[] | getValues() Returns the values for the choices. | |
string[] | getStructuredValues() Returns the values in the structure originally passed to the list. | |
int[]|string[] | getOriginalKeys() Returns the original keys of the choices. | |
array | getChoicesForValues(array $values) Returns the choices corresponding to the given values. | |
string[] | getValuesForChoices(array $choices) Returns the values corresponding to the given choices. | |
flatten(array $choices, callable $value, array $choicesByValues, array $keysByValues, array $structuredValues) Flattens an array into the given output variables. |
Creates a list with the given choices and values.
The given choice array must have the same array keys as the value array.
iterable | $choices | The selectable choices |
callable | $value | The callable for creating the value for a choice. If null is passed, incrementing integers are used as values |
Returns all selectable choices.
array | The selectable choices indexed by the corresponding values |
Returns the values for the choices.
The values are strings that do not contain duplicates.
string[] | The choice values |
Returns the values in the structure originally passed to the list.
Contrary to {@link getValues()}, the result is indexed by the original keys of the choices. If the original array contained nested arrays, these nested arrays are represented here as well:
$form->add('field', 'choice', array(
'choices' => array(
'Decided' => array('Yes' => true, 'No' => false),
'Undecided' => array('Maybe' => null),
),
));
In this example, the result of this method is:
array(
'Decided' => array('Yes' => '0', 'No' => '1'),
'Undecided' => array('Maybe' => '2'),
)
string[] | The choice values |
Returns the original keys of the choices.
The original keys are the keys of the choice array that was passed in the "choice" option of the choice type. Note that this array may contain duplicates if the "choice" option contained choice groups:
$form->add('field', 'choice', array(
'choices' => array(
'Decided' => array(true, false),
'Undecided' => array(null),
),
));
In this example, the original key 0 appears twice, once for true
and once for null
.
int[]|string[] | The original choice keys indexed by the corresponding choice values |
Returns the choices corresponding to the given values.
The choices are returned with the same keys and in the same order as the corresponding values in the given array.
array | $values | An array of choice values. Non-existing values in this array are ignored |
array | An array of choices |
Returns the values corresponding to the given choices.
The values are returned with the same keys and in the same order as the corresponding choices in the given array.
array | $choices | An array of choices. Non-existing choices in this array are ignored |
string[] | An array of choice values |
Flattens an array into the given output variables.
array | $choices | The array to flatten |
callable | $value | The callable for generating choice values |
array | $choicesByValues | The flattened choices indexed by the corresponding values |
array | $keysByValues | The original keys indexed by the corresponding values |
array | $structuredValues | The values indexed by the original keys |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Form/ChoiceList/ArrayChoiceList.html