我有一个数组,我需要在选项下拉菜单中添加选项,例如array('option_1' => 'Option 1', 'option_2' => 'Option 2', 'option_3' => 'Option 3')
手动输入此代码,在选择菜单中生成所需的输出:
<option value="option_1">Option 1</option>
<option value="option_2">Option 2</option>
<option value="option_3">Option 3</option>
现在,由于这些选项是从数据库中提取的,因此手动输入它们不是答案,因此我抓住了选项列表,其中每个选项都位于数据库中自己的行上。
$options = explode("\n", get_option('field-options'));
$i = 1;
$select = "";
$prefix = "";
foreach ($options as $option) {
$select .= $prefix . "'option_" . $i . "' => '" . $option . "'";
$prefix = ', ';
$i++;
}
当我echo $select;
时,我得到了格式正确的列表:
'option_1' => 'Option 1 ', 'option_2' => 'Option 2 ', 'option_3' => 'Option 3'
但是,当我使用array($select)
时,我将所有内容都作为一个选项的文本值:
<option value="0">
'option_1' => 'Option 1',
'option_2' => 'Option 2',
'option_3' => 'Option 3'</option>
如何让$ select变量在数组中正确输出。
答案 0 :(得分:2)
这是动态分配数组值的方法。
$options = explode("\n", get_option('field-options'));
$i = 1;
$select = array();;
foreach ($options as $option) {
$select["option_".$i] = $option;
$i++;
}
答案 1 :(得分:1)
您不需要像键入数组一样构建数组语法。相反,像这样添加到数组:
<?php
$array = array();
$array['option_1'] = 'Option 1';
$array['option_2'] = 'Option 2';
$array['option_3'] = 'Option 3';
您现在有一个数组$array
,其中包含3个项目。您也不需要使用$i
来跟踪您的排名,您可以使用$key => $value
表示法,如下所示:
$select_options = array();
foreach ($options as $key => $option) {
$select_options['option_' . $key] = $option;
}