下拉条从多个PHP阵列选项组(Drop Down Option Groups from Multip

2019-10-29 04:36发布

我有一个快速的问题,并希望这是一个容易回答:

我现在有下面的PHP代码(其中正常工作):

<? 
    $teams = array ('Team 1' => 'T1', 'Team 2' => 'T2', 'Team 3' => 'T3');

    foreach ($teams as $team_name => $team_code) {
        if ($row['db_code'] == $team_code) {          // This is from a MySQL query
            echo "<option value=\"$team_code\" selected>$team_name</option>";
        }
        else {
            echo "<option value=\"$team_code\">$team_name</option>";
        }
    }
?>

我怎么可以添加额外的阵列到我foreach语句,然后divy成<optgroups>

$colors = array('Color 1' => 'C1', 'Color 2' => 'C2', 'Color 3' => 'C3');

这样一来,就出现这样的HTML:

<select id="some_id">
    <optgroup label="Teams">
        <option value="T1">Team 1</option>
        <option value="T2">Team 2</option>
        <option value="T3">Team 3</option>
    <optgroup label="Colors">
        <option value="C1">Color 1</option>
        <option value="C2">Color 2</option>
        <option value="C3">Color 3</option>
</select>

Answer 1:

这可能会工作,没有测试它!

$teams = array ('Team 1' => 'T1', 'Team 2' => 'T2', 'Team 3' => 'T3');
$colors = array('Color 1' => 'C1', 'Color 2' => 'C2', 'Color 3' => 'C3');

$array = array('Teams' => $teams, 'Colors' => $colors);

foreach ($array as $key => $val)
{
    echo '<optgroup label="'.$key.'">';

    foreach ($val as $k => $v)
    {
        echo '<option value="'.$k.'">'.$v.'</option>';
    }

    echo '</optgroup>';
}


Answer 2:

你可以改变你的结构一点点:

$drop_down_options = array(   
                            'Teams' => array(
                                                "Team 1" => "T1",
                                                "Team 2" => "T2",
                                                "Team 3" => "T3"
                                            ),
                            'Colors' => array(
                                                "Color 1" => "C1",
                                                "Color 2" => "C2",
                                                "Color 3" => "C3" 
                                            )
                            );

然后做这样一个foreach:

foreach($drop_down_options as $group_name => $group){
    echo "<optgroup label=\"$group_name\">";

    foreach($group as $value => $name){
        echo "<option value=\"$value\" selected>$name</option>";
    }

    echo "</optgroup>";
}                            


Answer 3:

foreach($drop_down_options as $group_name => $group){
    echo "<optgroup label=\"$group_name\">";

    foreach($group as $value => $name){
        echo "<option value=\"$value\" selected>$name</option>";
    }

    echo "</optgroup>";
}     


文章来源: Drop Down Option Groups from Multiple PHP Arrays