在一个下拉列表中加载两个数组以获取选项值和文本


Loading Two Arrays in One Drop-Down List For Option Value and Text

您能否告诉我如何在一个下拉列表中加载两个数组,一个用于值($values),另一个数组($colors)用于文本。

<?php 
$colors = array("Red", "Green", "Blue", "Tellow"); 
$values = array("#444444", "#ff0055", "#bb0055", "#bb4455");
?> 
<select name="color-list">
<?php 
    foreach($colors as $colorslist) 
    {
       echo '<option value="">'.$colorslist.'</option>';
    }
?>
</select>

谢谢

试试这个简单的逻辑:

<?php 
$colors = array("Red", "Green", "Blue", "Tellow"); 
$values = array("#444444", "#ff0055", "#bb0055", "#bb4455");
?> 
<select name="color-list">
<?php 
    foreach($colors as $key => $color) 
    {
       echo '<option value="'.$color.'">'.$values[$key].'</option>';
    }
?>
</select>

Combine两个数组,然后循环它

$colors = array("Red", "Green", "Blue", "Tellow"); 
$values = array("#444444", "#ff0055", "#bb0055", "#bb4455");
$combined = array_combine($values, $colors);
<select name="color-list">
<?php 
    foreach($combined as $key=>$value) 
    {
       echo '<option value="'.$key.'">'.$value.'</option>';
    }
?>
</select>

为什么不将两个数组合并为键和值

$color-list = array("Red"=>"#444444", "Green"=>"#ff0055");
foreach($color-list as $k => $v){
echo "<option value='{$k}'>" . $v . "</option>";

}

foreach($colors as $idx => $colorslist)
{
    echo '<option value="' . $values[$idx] . '">'.$colorslist.'</option>';
}

您可以通过当前元素$colors数组的索引访问$values数组中的数据