PHP 中实现 3:4 网格布局的 while 循环技巧

1次阅读

PHP 中实现 3:4 网格布局的 while 循环技巧

本文详解如何使用 phpwhile 循环与取模运算(%)精准控制每行输出 3 或 4 个数字,生成交替的「3 列—4 列」网格结构(如 1–3 行、4–7 行),避免常见逻辑错误(如赋值误写为比较)。

要实现如下目标输出:

1 2 3 4 5 6 7  8 9 10  11 12 13 14

关键在于:每 7 个数字为一个周期,其中前 3 个占第 1 行,后 4 个占第 2 行;接着重复该模式(即第 3 行显示 8–10,第 4 行显示 11–14)。因此,可将 $i 对 7 取模,利用余数判断是否换行:

  • 当 $i % 7 == 3 → 第 3 个数(如 3, 10, 17…)后需换行(结束 3 列行)
  • 当 $i % 7 == 0 → 第 7、14、21…个数后换行(结束 4 列行)

注意:原始代码中 while($i=1

以下是修正后的 while 循环实现方案(严格按题目要求,不使用 for):

立即学习PHP免费学习笔记(深入)”;

php $i = 1; while ($i <= 14) {     echo $i;     // 在第 3、7、10、14...个数后换行:即余数为 3 或 0(mod 7)     if ($i % 7 === 0 || $i % 7 === 3) {         echo "
"; } else { echo " "; } $i++; } ?>

✅ 输出效果完全匹配需求:

1 2 3
4 5 6 7
8 9 10
11 12 13 14

? 注意事项

  • === 用于严格比较,避免类型隐式转换导致误判(如 0 == false 成立,但 0 === false 不成立);
  • 若后续需扩展为动态列数(如 N:M 模式),可封装为函数,传入总数量、行模式数组(如 [3,4])并轮询计算;
  • html 中连续空格会被浏览器合并,如需严格对齐,建议配合
    标签或 css white-space: pre;
  • 实际项目中若涉及模板渲染,推荐用 str_split() + array_chunk() 预分组,语义更清晰。

掌握取模在循环分组中的应用,是 PHP 基础但高实用性的技巧——它让“非等长规律排版”变得简洁可控。

text=ZqhQzanResources