
本文详解如何使用 php 的 while 循环与取模运算(%)精准控制每行输出 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免费学习笔记(深入)”;
";
} 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 基础但高实用性的技巧——它让“非等长规律排版”变得简洁可控。











