我试图从php循环中包装行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在这里,我们可以看到,第一行工作得很好,但是在逻辑的某个地方,它变得有缺陷,问题是在哪里?
发布于 2015-06-18 12:09:16
对你的代码做了一些修改。
<?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发布于 2015-06-18 12:06:48
对列使用了另一个计数器。测试并似乎有效: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;
}
}发布于 2015-06-18 12:08:14
就像这样:
<?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 https://stackoverflow.com/questions/30914749
复制相似问题