Нужно больше места, чем комментарий.У @yorirou правильный ответ.Однако для сохранения / извлечения массива строк, каждая из которых введена различными виджетами, у вас есть простой путь:
Обернуть все в наборе полей свойством #tree.Все поля в этом наборе полей будут складываться в массив, структурированный на основе имени набора полей для имени переменной и отдельных имен полей для значения ключа.Сериализация массива автоматически обрабатывается в variable_get / set.
$form['custom_settings'] = array(
'#title' => t('My settings'),
'#type' => 'fieldset',
'#tree' => TRUE,
);
$form['custom_settings']['first_setting'] = array(
'#type' => 'textfield',
// etcetera
);
$form['custom_settings']['second_setting'] = array(
'#type' => 'textfield',
// etcetera
);
При выводе сохраненного массива вы получите что-то вроде этого:
custom_settings = Array(
'first_setting' => 'some string',
'second_setting' => 'some other string',
)
Вы можете получить такой же эффект с помощьюОбработчик #validate или использование элемента #parents в массивах форм, но это потребует дополнительной работы для изменения значения по умолчанию.