PHP动态实现Bootstrap每行两列分放奇偶数组时列无法并排问题
问题原因
- 原有代码遍历每个数组元素时都会生成独立的
.form-group.row容器,导致每个元素独占一整行,无法实现同一行内左右放置奇偶元素的需求 - 单组元素(标签+输入框)总宽度为
col-lg-2 + col-lg-4 = 6,刚好两个组可以凑满Bootstrap行的12列宽度,只需把奇偶元素放在同一行容器内即可
修复后代码
<div class="card"> <div class="card-body"> <div class="row"> <div class="col-xl-12"> <div class="card-body"> <?php $arr = array(1,2,3,4,5,6,7,8,9,10); foreach($arr as $index => $data) { // 遇到奇数元素时开启新行 if($data%2 == 1) { echo '<div class="form-group row">'; } ?> <?php if($data%2 == 1) { ?> <label class="col-lg-2 col-form-label font-weight-bold"><?php echo $data; ?></label> <div class="col-lg-4"> <textarea class="form-control" name="<?php echo $data; ?>"></textarea> </div> <?php } else { ?> <label class="col-lg-2 col-form-label font-weight-bold"><?php echo $data; ?></label> <div class="col-lg-4"> <textarea class="form-control" name="<?php echo $data; ?>"></textarea> </div> <?php } // 遇到偶数元素或者遍历到最后一个元素时关闭行 if($data%2 == 0 || $index == count($arr)-1) { echo '</div>'; } } ?> </div> </div> </div> </div> </div>
核心改动说明
- 每两个元素(奇数+偶数)共用同一个
.form-group.row容器,保证两个元素可以在同一行内并排显示 - 增加了遍历结束的兜底判断,如果数组元素总数为奇数,也能正常闭合最后一个行容器,避免HTML标签结构错误
- 保留原有列宽、样式配置,无需额外修改CSS即可实现对齐效果
内容的提问来源于stack exchange,提问作者Rahul Raj
相关产品推荐
相关产品推荐

