我试图制作动态列列表,总共4列(PHP).我回应一个数组,每次4个数组项后,我想将这4个数组项包装在一个名为"列"的div中.
基本上,我认为我可以通过自我计数$ i ++语句来做到这一点,但首先我无法从零开始计数(我尝试将变量设置在每个循环之外.)
无论如何,你好,如果你可以告诉我如何检查$ ++是否可以被php整除4,这样我就可以插入一个如果$ i ++可被4整除然后回显"",我将非常感激.但首先我相信我需要弄清楚如何在1处开始计数(这样,如果$ i ++可以被4整除就可以工作......对吧?)
Jas*_*ary 12
如果除以4,它将是整数除法,商将是因子4.你可能想要的是模数运算符 %.它会给你余下的.因此,当$i为4的倍数时,它将为0.
if (($i % 4) == 0) {
// evenly divisible by 4 logic
}
Run Code Online (Sandbox Code Playgroud)
模数可能效率低下.由于你除以2的倍数,你可以将位右移2.它与除以4相同,效率更高.检查位移.
%是模数运算符.它返回除法后的余数,所以7 % 4 == 3.
你真的应该从0开始.这是因为0 % 4 == 0和4 % 4 == 0......你希望第一个项目成为一个新行!所以你想在0,4,8等新行......如果你从一开始,那么1,2和3就不会连续.
此外,我们必须记住在新行之前关闭每个项目上的行.
最后,如果我们退出循环而不关闭最后一行,我们必须在退出循环后执行此操作.
我将展示如何使用表格来执行此操作,但您可以像使用easwith一样使用div.
<table>
<?php
// Start at zero, so we start with a new row
// Since we start at 0, we have to use < number of items, not <=
for ($i = 0; $i < $numberOfItems; ++$i)
{
// if divisible by 0 start new row
if ($i % 4 == 0)
echo '<tr>';
// Always print out the current item
echo '<td>' . $item[$i] . '</td>';
// If the next $i is divisible by 4, we have to close the row
if ($i % 4 == 3)
echo '</tr>';
}
// If we didn't end on a row close, make sure to close the row
if ($i % 4 != 3)
echo '</tr>';
?>
</table>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4913 次 |
| 最近记录: |