我正在这样做:
$sql_glassware = 'SELECT id, name FROM glassware';
$qry_glassware = $con->query($sql_glassware);
$get_glassware = $qry_glassware->fetchAll(PDO::FETCH_ASSOC);
debug($get_glassware);
debug()
是个人功能;它返回这样的结果:
$get_glassware = array(19) {
[0]=>array(2) {
["id"]=>string(1) "1"
["name"]=>string(8) "Cocktail"
}
[1]=>array(2) {
["id"]=>string(1) "2"
["name"]=>string(9) "Margarita"
}
[2]=>array(2) {
["id"]=>string(1) "3"
["name"]=>string(8) "Highball"
}
...
}
我猜第一个数组级别是行,第二个级别是列。
不知道为什么它会将 id 作为字符串返回...
然后我正在使用一个类来构造一个完整的表单;我有一个名为的公共函数addSelect()
,其中第一个参数采用一组值来构建选项列表:array('name0','name1', 'name2','...')
并在里面执行一个foreach()
-loop:
public function addSelect($opt=array(),$param=array())
$name = $this->useEither($param['name'],'dropdown-list'); // useEither() is a personal function
foreach ($opt as $val => $name){
$options .= '<option value="'.$val.'">'.$name.'</option>';
}
$select = '<select name="'.$name.'" '.$param['string'].'>'.$options.'</select>';
$this->formElements[] = $select; // store the list for use later
}
如何重新编写这个小函数,以便我可以$get_glassware
直接将第一个参数传递给我的函数并让它输出如下选项:
<option value="1">Cocktail</option>
<option value="2">Margarita</option>
<option value="3">Highball</option>