我正在尝试从php循环内部的一个div div中包含两列。
我想出了这个测试,但无论我做什么都失败了。这是我能来的最接近的,我看不出这个逻辑失败的地方。
看看:
<?php $i = 0; ?>
<?php while($i < 11) : ?>
<?php if ($i % 2 === 0) : ?>
<div class="row">row
<?php endif; ?>
<span><?php echo "[" . $i . "]"; ?></span>
<?php if (!$i % 2 === 0) : ?>
/row
</div>
<?php endif; ?>
<?php $i++; ?>
<?php endwhile; ?>
产生的结果:
row [0] [1] /row
row [2] /row
[3] /row
row [4] /row
[5] /row
row [6] /row
[7] /row
row [8] /row
[9] /row
row [10] /row
在这里我们可以看到第一行工作得很好但是它在逻辑中的某处出现了缺陷,问题在哪里?
答案 0 :(得分:1)
对您的代码进行了一些更改。
<?php $i = 0;
while($i <= 11) :
if($i%2==0){
echo '<div class="row"> Row';
}
echo "[" . $i . "]";
if($i%2!=0){
echo " row </div>";
}
$i++;
endwhile; ?>
将输出
Row[0][1] row
Row[2][3] row
Row[4][5] row
Row[6][7] row
Row[8][9] row
Row[10][11] row
答案 1 :(得分:0)
使用了另一个列的计数器。 经过测试并且似乎有效:http://sandbox.onlinephpfunctions.com/code/7374de00caef8a3f6b89a6196093326e8133c021
$col = 0;
for($i = 0; $i < 11; $i++){
if($i % 2 == 0){
echo '<div>';
}
echo "<span>[".$i."]</span>";
$col++;
if($col == 2){
echo "</div>";
$opened = false;
$col = 0;
}
}
答案 2 :(得分:0)
这样的事情:
<?php
$count = 14;
for($i = 0; $i <= $count; $i += 2) {
if ($i % 2 == 0) {
echo('row ');
}
echo('['.$i.']');
if ($i < $count) {
echo('['.($i+1).']');
}
if ($i % 2 == 0) {
echo(' /row ');
}
}
?>
结果:
row [0][1] /row
row [2][3] /row
row [4][5] /row
row [6][7] /row
row [8][9] /row
row [10][11] /row
row [12][13] /row
row [14] /row
答案 3 :(得分:0)
试试这个
<style>
div {
border: 1px red solid;
width: 100px;
padding: 3px;
margin: 3px;
text-align: center;
}
</style>
<?php
$i = 0;
while ($i < 11) :
$row = $i % 2 === 0;
?>
<?php if ($row): ?><div><?php endif;?>
<span><?php echo '[' . $i . ']'; ?></span>
<?php if (!$row): ?></div><?php endif;?>
<?php
$i++;
endwhile; ?>
输出: