我有一个数组:
$my_fontSizes = array("" => "100% Default",
"150%" => "150% of default",
"80%" => "80% of default"
);
当我将其转换为选择列表时,如何指定选项的“值”是=>左侧的值?标志和“文字标签”是什么在右边?
示例,这是我现在正在使用的内容,但是=>右侧的元素被设置为值和标签:
<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $option) { ?>
<option<?php if ( get_option( $value['id'] ) == $option) { echo ' selected="selected"'; } ?> value='<?php echo $option; ?>'><?php echo $option; ?></option><?php } ?>
</select>
答案 0 :(得分:3)
<?php
foreach ($array as $key => $value)
?>
答案 1 :(得分:2)
您想要使用稍微不同的foreach形式
foreach($array as $key=>$value)
使用此功能,您可以同时获取每个选项的键(左侧)和值(右侧)。
答案 2 :(得分:2)
首先,不要混淆你的PHP和XHTML。这很麻烦,难以维护。
其次,请注意您打印$option
作为名称和值。这就是我要做的事情:
$my_fontSizes = array(
"" => "100% Default",
"150%" => "150% of default",
"80%" => "80% of default");
$HTML = sprintf('<select name="%s" id="%s">', $Value['id'], $Value['id']);
foreach ($my_fontSizes as $Key => $Value)
{
$Selected = ($OtherValue == $Value) ? 'selected="selected"' : '';
$HTML .= sprintf('<option %s value="%s">%s</option>', $Selected, $Key, $Value);
}
$HTML .= '</select>';
echo $HTML;
答案 3 :(得分:1)
您想使用稍微不同的foreach
循环:
foreach($array as $key=>$value)
所以你的代码是:
<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $value $option) { ?>
<option<?php if ( get_option( $value['id'] ) == $option) { echo ' selected="selected"'; } ?> value='<?php echo $value; ?>'><?php echo $option; ?></option><?php } ?>
</select>
答案 4 :(得分:0)
你的代码缺少一个名为$ value的变量,而“100%Default”需要一个值(比如0 OR null,只是为了填充空格)但是你可以遍历你的数组并得到值和选项文本,如此:
<select>
<?php
foreach($my_fontSizes as $value => $key)
{
?>
<option value="<?php echo $value; ?>"><?php echo $key; ?></option>
<?php
}
?>
</select>
答案 5 :(得分:0)
<select name="<?=$value['id']?>" id="<?=$value['id']?>">
<?php foreach ($value['options'] as $value=>$option) { ?>
<option<?=(get_option( $value['id'] ) == $value ? ' selected="selected"' : '')?> value='<?=$value?>'><?=$option?></option>
<?php } ?>
</select>
稍微清理一下标记(但与其他人一样的答案)
答案 6 :(得分:0)
您可以使用array_keys()并通过键来打印选项值。