在php中使用多维数组打印selectbox

在php中使用多维数组打印selectbox,php,multidimensional-array,drop-down-menu,Php,Multidimensional Array,Drop Down Menu,我正在尝试生成一个选择框: $turn= array( 'attr' => array('nameid' => 'turn',), '0 - 499', '500 - 1499', '1500 - 3499', '3500 - 12999', '13000 - 17999', '18000 - 23999', '24000 - 40000', ); function createSelectBox($array) { $out = "<select id=" . $a

我正在尝试生成一个选择框:

$turn= array(
'attr' => array('nameid' => 'turn',),
'0 - 499',
'500 - 1499',
'1500 - 3499',
'3500 - 12999',
'13000 - 17999',
'18000 - 23999',
'24000 - 40000',
);

function createSelectBox($array) {
    $out = "<select id=" . $array['attr']['nameid'] . " name=" .$array['attr']['nameid']">";
    $out .= "<option class='choose' >Choose...</option>";
        for ($idx = 0; $idx < sizeof($array) - 1; $idx++) {
            $out .= "<option value=" . $array[$idx] . ">" . $array[$idx] . "</option>";
        }
    $out .= '</select>';
    return $out;
}
$turn=array(
'attr'=>array('nameid'=>turn',),
'0 - 499',
'500 - 1499',
'1500 - 3499',
'3500 - 12999',
'13000 - 17999',
'18000 - 23999',
'24000 - 40000',
);
函数createSelectBox($array){
$out=“”;
$out.=“选择…”;
对于($idx=0;$idx
问题是,它将在我的选项标记中生成“value”属性,如下所示:

 <option value="0" 499>0 - 499</option>
0-499
该函数无法处理数组中的WhiteCpace。

请使用此函数

function createSelectBox($array) {
        $out = '<select id='.$array['attr']['nameid'].' name='.$array['attr']['nameid'].'>';
        $out .= '<option class="choose" >Choose...</option>';
            for ($idx = 0; $idx < sizeof($array) - 1; $idx++) {
                $out .= '<option value="'.$array[$idx].'">' . $array[$idx] . '</option>';
            }
        $out .= '</select>';
        return $out;
    }
函数createSelectBox($array){
$out='';
$out.=“选择…”;
对于($idx=0;$idx
您的值是字符串,您将它们视为整数。试试看

<?php
    $turn= array(
    'attr' => array('nameid' => 'turn',),
    '0 - 499',
    '500 - 1499',
    '1500 - 3499',
    '3500 - 12999',
    '13000 - 17999',
    '18000 - 23999',
    '24000 - 40000',
    );

    function createSelectBox($array) {
        $out = "<select id=" . $array['attr']['nameid'] . " name=" .$array['attr']['nameid'] . ">";
        $out .= "<option class='choose' >Choose...</option>";
            for ($idx = 0; $idx < sizeof($array) - 1; $idx++) {
                $out .= "<option value='" . $array[$idx] . "'>" . $array[$idx] . "</option>";
            }
        $out .= '</select>';
        return $out;
    }
    echo createSelectBox( $turn );
    ?>

只是不要设置值字段。如果没有,那么它使用文本。