Я бы предложил повторить набор элементов формы и проверить, существует ли внутренний ключ #options
.Если это так, вы можете добавить опции в свой массив всех опций.
$all_options = [];
foreach ($form_elements as $name => $settings) {
if (isset($settings['#options'])) {
$all_options[$name] = $settings['#options'];
}
}
Я использовал имя элемента в качестве ключа в примере кода, потому что я подумал, что было бы удобно знать, гдеварианты пришли, но вам не придется делать это таким образом.Если вы просто хотите, чтобы они все были в одном большом списке, вы можете объединить их в $all_options
вместо добавления их.
$all_options = array_merge($all_options, $settings['#options']);
Это предполагает, что каждое из значений в FORM является массивом, представляющим один элемент формы.Если есть какое-либо вложение, такое, что #options
может появиться на более глубоком уровне, рекурсивный поиск может справиться с этим, но если нет, я думаю, что лучше сделать его простым.