处理PHP和HTML <option>逻辑的更好解决方案

Bac*_*ice 3 html php

想知道你是否可以告诉我一个更好的方法来处理这个逻辑?我写了这篇文章并为此感到非常惭愧.你能告诉我这个逻辑的更好的优化版本吗?

PS $ result ["item"]; 返回一个整数.

$type = $result["item"];
switch ($type){
case "1":
$type_output = '    
<option value="1" selected>Cash</option>
<option value="2">Cheque</option>
<option value="3">Debit Card</option>
<option value="4">Credit Card</option>';
break;

case "2":
$type_output = '    
<option value="1">Cash</option>
<option value="2" selected>Cheque</option>
<option value="3">Debit Card</option>
<option value="4">Credit Card</option>';
break;

case "3":
$type_output = '    
<option value="1">Cash</option>
<option value="2">Cheque</option>
<option value="3" selected>Debit Card</option>
<option value="4">Credit Card</option>';
break;

case "4":
$type_output = '    
<option value="1">Cash</option>
<option value="2">Cheque</option>
<option value="3">Debit Card</option>
<option value="4" selected>Credit Card</option>';
break;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<td>
<select style="width:200px;" name="payment_type">
<option value=""> </option>
'.$type_output.'
</select>
</td>
Run Code Online (Sandbox Code Playgroud)

谢谢

Luc*_*one 6

我会用这种方法

$type = $result["item"];
$type_output = "";

$options =array(
    "1"=>"cash",
    "2"=>"Cheque",
    "3"=>"Debit Card",
    "4"=>"Credit Card",
);

foreach($options as $value=>$text) {
    $type_output .= "<option value=\"$value\"".($type==$value? " selected" : "").">$text</option>\n";
}
Run Code Online (Sandbox Code Playgroud)