我有一个看起来像这样的数组:
$array = array(
'val1' => array('en'=>'Option Title 1','a'=>1),
'val2' => array('en'=>'Option Title 2','b'=>2),
'val3' => array('en'=>'Option Title 3','c'=>3)
);
我尝试运行此代码以生成一个选择框:
function setOptions($array){
echo '<select name="select">';
foreach($array as $key_parent => $val_parent){
foreach($val_parent as $key => $val){
if($key !== 'en'){
$option_value = $val;
}elseif($key == 'en'){
$option_title = $val;
}
}
echo '<option value"'.$option_value.'">'.$option_title.'</option>';
}
echo '<select>';
}
这打印出我的预期。
<select name="select">
<option value="1">Option Title 1</option>
<option value="2">Option Title 2</option>
<option value="3">Option Title 3</option>
</select>
但是,当我从表单提交中打印$_POST['select']
的返回值时,我得到Option Title 1
,Option Title 2
或Option Title 3
,而不是1,2 or 3
以为很奇怪。
所以这就留下了一个问题,当一个有问题的值的密钥未知(a,b或c)时,如何获取val1,val2,val3中的值?
答案 0 :(得分:4)
你错过了相等的价值属性。
function setOptions($array){
echo '<select name="select">';
foreach($array as $key_parent => $val_parent){
foreach($val_parent as $key => $val){
if($key !== 'en'){
$option_value = $val;
}elseif($key == 'en'){
$option_title = $val;
}
}
echo '<option value="'.$option_value.'">'.$option_title.'</option>';
}
echo '<select>';
}