0

嗨,我正在尝试将数组放入选项输入中。但问题是我得到一个空白选项。我想删除它。

这是我正在尝试做的事情:

<select name "x">
$myarray=array('black','blue','brown');
for ($i=0;$i<=count($myarray);$i++){
    if ( $row['colur']==$myarray[$i]) {//if value in database = array$i
        echo"<option value='$myarray[$i]' selected>$myarray[$i]</option>";
    } else {
        echo"<option value='$myarray[$i]'>$myarray[$i]</option>";
    }
}

4

2 回答 2

4

您应该少循环一项:

for ($i=0;$i < count($myarray);$i++) {

你的最后一个$i循环“看到”count($myarray)是 3 在你的情况下。但是,因为数组是零索引的,所以 item$myarray[3]不存在(从 0 到 2)。if失败并显示$myarray[3],它不存在:您还会在服务器日志中收到“通知”级别的错误(这应该是您自己找出这一切的触发器)。

为了防止这一切,请使用foreach

foreach ($myarray as $color) {
    // use $color instead of $myarray[$i]
}
于 2013-08-13T15:35:14.213 回答
2

由于数组索引从 0 开始到(数组长度 -1),您应该相应地提及您的 for 循环,即

$array_length = count($myarray);

for ($i=0;$i < $array_length;$i++) {
//your code
}
于 2013-08-13T15:41:41.230 回答