2011-04-18 59 views
1

我有一个数组给出:转换数组的XHTML选择列表

$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> 

回答

3
<?php 
foreach ($array as $key => $value) 
?> 
+0

谢谢格尔本。我很感激帮助。 – 2011-04-18 15:32:32

2

你想用稍有不同的形式的foreach

foreach($array as $key=>$value) 

使用这个,你能抓住这两个关键(左侧)和每个选项的值(右侧)。

+0

感谢Tau_Zero,感谢您的快速回答。 – 2011-04-18 15:33:11

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> 
0

你的代码是缺少一个变量名为$值和“100%默认值”,将需要一个值(比如0或null,只是为了填充空格),但是您可以遍历数组并获取如下所示的值和选项文本:

<select> 
<?php 
foreach($my_fontSizes as $value => $key) 
{ 
?> 
<option value="<?php echo $value; ?>"><?php echo $key; ?></option> 
<?php 
} 
?> 
</select> 
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> 

而且稍微清理标记(但同样的答案,因为每个人)

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; 
+0

谢谢扎克。我赞赏解释+1 – 2011-04-18 15:31:54

0

你会使用array_keys()并通过键来打印选项值。