0

次のような配列があります。

$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 31,2 or 3これはかなり奇妙だと思いました。

問題の値のいずれかのキーが不明な場合 (a、b、または c)、どうすれば val1、val2、val3 内の値を取得できますか?

4

1 に答える 1

4

equal in value 属性がありません。

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>';
}
于 2012-12-12T12:43:13.770 に答える