我是php新手,编码是老派
<?php
for($i=-2; $i<count($s2)-1;$i++){ ?>
<tr>
<td>
<?php
switch ($i) {
case '-2':
echo "JR KG";
goto a;
break;
case '-1':
echo "SR KG";
break;
case '0':
echo "Nursery";
break;
default:
echo $i;
?>
</td>
<?php foreach($a2 as $aaa){ a: ?>
<td>
<input type="checkbox" name="<?php echo $aaa.'['.$i.']'; ?>" >
</td>
<?php
}
?>
</tr>
<?php
}
}
?>
通过上面的代码我想显示标准列表并显示每个分区的复选框(a-h)。打印标准后我想像复选框一样显示网格。这适用于i = 1到12 ..由于break();
,因为-2,-1,0失败所以我尝试添加goto a;但得到以下错误
致命错误:“goto”进入循环或切换语句
如何获取前三个字段的每个部门的复选框的任何建议。
循环“i”我开始显示标准的行,并且循环“foreach($ a2)”我想在$ a2中附加foreach divison的复选框数...想创建像一个网格。由于break()
,它未能在前3行附加复选框感谢。
答案 0 :(得分:1)
您可以在Switch语句中使用goto。
但是,您不能跳转到foreach循环内的标签,因为foreach变量尚未实例化。在您的代码中,如果要跳转到foreach循环内的标签,则不会定义$ aaa变量。 foreach指针从未初始化。
如果PHP允许跳入foreach语句,则代码几乎总是会产生不可预测的结果。
答案 1 :(得分:0)
我仍然不确定我理解。
但如果你想在三个特殊情况下做一些不同的事情,试试这个一般的想法。
<?php
function add_checkboxes($i, $a2) {
// do the checkbox processing in here
if ( $i == -2 ) {
foreach($a2 as $aaa){ a: ?>
echo '<td>';
echo '<input type="checkbox" name="' . $aaa . '['.$i.'] .'" >';
echo '</td>';
}
}
}
for($i=-2; $i<count($s2)-1;$i++){
?>
<tr>
<td>
<?php
switch ($i) {
case '-2':
echo "JR KG";
add_checkboxes($i, $a2);
break;
case '-1':
echo "SR KG";
add_checkboxes($i, $a2);
break;
case '0':
echo "Nursery";
add_checkboxes($i, $a2);
break;
default:
echo $i;
?>
</td>
</tr>
<?php
}
}
?>