Список выбора ключей массива устаревший
класс Список выбора ключей массива расширяет Список выбора элементов массива
устаревший
Список вариантов, которые могут храниться в ключах PHP-массива.
PHP-массивы принимают только строки и целые числа в качестве ключей массива. Другие скалярные типы преобразуются в целые числа и строки в соответствии с описанием {@link toArrayKey()}. Эта реализация применяет те же правила преобразования для вариантов, переданных в конструктор и {@link getValuesForChoices()}.
По умолчанию варианты преобразуются в строки и используются в качестве значений. По желанию можно передать пользовательские значения. Ключи массива значений должны совпадать с ключами массива вариантов.
Пример:
```php $choices = array('' => 'Не знаю', 0 => 'Нет', 1 => 'Да'); $choiceList = new Список выбора ключей массива(array_keys($choices));
$values = $choiceList->getValues() // => array('', '0', '1')
$selectedValues = $choiceList->getValuesForChoices(array(true)); // => array('1') ```
Методы
| __construct(array|Traversable $choices, callable|null $value = null) Создает список с заданными вариантами и значениями. | ||
| массив | getChoices() Возвращает все выбираемые варианты. | из Список выбора элементов массива |
| массив строк | getValues() Возвращает значения для вариантов. | из Список выбора элементов массива |
| массив строк | getStructuredValues() Возвращает значения в структуре, первоначально переданной в список. | из Список выбора элементов массива |
| массив целых чисел или строк | getOriginalKeys() Возвращает исходные ключи вариантов. | из Список выбора элементов массива |
| массив | getChoicesForValues(array $values) Возвращает варианты, соответствующие заданным значениям. | |
| массив строк | getValuesForChoices(array $choices) Возвращает значения, соответствующие заданным вариантам. | |
| статический int|строка | toArrayKey(mixed $choice) Преобразует заданный вариант в ключ массива. |
Подробности
__construct(array|Traversable $choices, callable|null $value = null)
Создает список с заданными вариантами и значениями.
Заданный массив вариантов должен иметь те же ключи массива, что и массив значений. Каждый вариант должен быть преобразуем в целое число/строку в соответствии с правилами преобразования, описанными в {@link toArrayKey()}.
Если значения не заданы, варианты преобразуются в строки и используются в качестве значений.
Параметры
| array|Traversable | $choices | Выбираемые варианты |
| callable|null | $value | Функция для создания значения для варианта. Если null передано, в качестве значений используются увеличивающиеся целые числа |
Исключения
| Исключение некорректного аргумента | Если ключи вариантов не совпадают с ключами значений или какой-либо из вариантов не является скалярным |
массив getChoices()
Возвращает все выбираемые варианты.
Значение результата
| массив | Выбираемые варианты, индексированные соответствующими значениями |
массив строк getValues()
Возвращает значения для вариантов.
Значения — это строки, не содержащие дубликатов.
Значение результата
| массив строк | Значения вариантов |
массив строк getStructuredValues()
Возвращает значения в структуре, первоначально переданной в список.
В отличие от {@link getValues()}, результат индексируется исходными ключами вариантов. Если исходный массив содержал вложенные массивы, эти вложенные массивы также будут представлены здесь:
$form->add('field', 'choice', array(
'choices' => array(
'Decided' => array('Yes' => true, 'No' => false),
'Undecided' => array('Maybe' => null),
),
));
В этом примере, результатом этого метода является:
array(
'Decided' => array('Yes' => '0', 'No' => '1'),
'Undecided' => array('Maybe' => '2'),
)
Значение результата
| массив строк | Значения вариантов |
массив целых чисел или строк getOriginalKeys()
Возвращает исходные ключи вариантов.
Исходные ключи — это ключи массива вариантов, которые были переданы в параметре «выбор» типа выбора. Обратите внимание, что этот массив может содержать дубликаты, если параметр «выбор» содержал группы вариантов:
$form->add('field', 'choice', array(
'choices' => array(
'Decided' => array(true, false),
'Undecided' => array(null),
),
));
В этом примере, исходный ключ 0 появляется дважды, один раз для true и один раз для null.
Значение результата
| массив целых чисел или строк | Исходные ключи вариантов, индексированные соответствующими значениями вариантов |
массив getChoicesForValues(array $values)
Возвращает варианты, соответствующие заданным значениям.
Варианты возвращаются с теми же ключами и в том же порядке, что и соответствующие значения в заданном массиве.
Параметры
| массив | $values | Массив значений вариантов. Несуществующие значения в этом массиве игнорируются |
Значение результата
| массив | Массив вариантов |
массив строк getValuesForChoices(array $choices)
Возвращает значения, соответствующие заданным вариантам.
Значения возвращаются с теми же ключами и в том же порядке, что и соответствующие варианты в заданном массиве.
Параметры
| массив | $choices | Массив вариантов. Несуществующие варианты в этом массиве игнорируются |
Значение результата
| массив строк | Массив значений вариантов |
статический int|строка toArrayKey(mixed $choice)
Преобразует заданный вариант в ключ массива.
PHP-массивы принимают только строки и целые числа в качестве ключей массива. Строки целых чисел, такие как "42", автоматически преобразуются в целые числа. Логические значения "true" и "false" преобразуются в целые числа 1 и 0 соответственно. Все остальные скалярные значения преобразуются в строки.
Параметры
| смешанный тип | $choice | Вариант |
Значение результата
| int|строка | Вариант как ключ PHP-массива |
Исключения
| Исключение некорректного аргумента | Если вариант не является скалярным |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/Form/ChoiceList/ArrayKeyChoiceList.html