我正在尝试使用php foreach循环生成此:
<form>
<div class="form-group">
<div class="row">
<div class="col-md-6">
DATA
</div>
<div class="col-md-6">
DATA
</div>
</div>
</div>
</form>
当前 PHP代码:
$form = '';
$form .= '<form>';
$count = 0;
foreach ($fields as $f) {
// open .form-group and .row every two loops?
if($count % 2) $form .='<div class="form-group"><div class="row">';
$form .= '<div class="col-sm-6">'; // always open column
$form .= 'Whatever data';
$form .= '</div>'; // always close column
// close .form-group and .row every two loops?
if($count % 2) $form .= '</div></div>';
$count++;
}
$form .= '</form>';
我尝试了很多方法,这只是我代码的一个例子。
重点是启动.form-group
和.row
,然后在没有包装器的情况下循环两次列,如果这有意义的话。
如果我使用if ($count % 2 == 0)
,我会得到http://i.imgur.com/AUvzjlw.png
A
答案 0 :(得分:2)
更改第一个
if ($count % 2)
到
if ($count % 2 == 0)
将第二个更改为:
if ($count % 2 != 0)
(第二次更改并非严格必要,但我认为这会使代码更清晰。)
您希望在$count
为偶数时启动新的DIV,并在$count
为奇数时结束。但是$count % 2
是0
,当它是偶数时,那就是假的。
请注意,如果$ fields中的项目数量可能为奇数,则在循环后需要额外检查以关闭最后一个DIV。所以在循环结束时,请执行:
if ($count % 2 != 0) {
// Close the last DIV if there are an odd number of fields
$form .= '</div></div>';
}
答案 1 :(得分:0)
条件不正确,在这种情况下,for循环可能更合适:
for ($count = 0; $count < count($fields); $count++) {
if($count % 2 === 0){
//even
}else{
//odd
}
}