数组中的PHP变量

时间:2014-06-02 20:11:12

标签: php arrays

我有一个数组,我需要在选项下拉菜单中添加选项,例如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变量在数组中正确输出。

2 个答案:

答案 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;
}