
本文讲解如何使用 php 的 while 或 for 循环,按“每行 3 个、4 个交替”的模式(即第1行3个数字、第2行4个、第3行3个、第4行4个……)格式化输出连续整数,重点解析模运算(%)与行尾换行逻辑的配合。
要实现目标输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
关键在于:行长度周期性变化(3 → 4 → 3 → 4…),而非简单按固定列数换行。原代码中 while($i=1
✅ 正确思路是:
- 利用 模 7 运算($i % 7)识别循环周期——因为 3+4=7,每 7 个数构成一个完整“3+4”单元;
- 在每个周期内,前 3 个数(余数为 1, 2, 3)后不换行,第 4 个数(余数为 4)开始进入“4 列区”,直到该周期末(余数为 0)才换行;
- 更直观的判断方式是:当 $i % 7 == 0(如 7, 14)或 $i % 7 == 3(如 3, 10)时,当前数字应为该行最后一个,需输出
换行。
以下为推荐实现(兼容 while / for,含清晰注释):
立即学习“PHP免费学习笔记(深入)”;
';
} else {
echo ' ';
}
}
?>输出效果完全匹配需求:
1 2 3
4 5 6 7
8 9 10
11 12 13 14
⚠️ 注意事项:
- 原问题中 while($i=1
- 若坚持用 while,可等价改写:
'; else echo ' '; $i++; } ?> - 此逻辑可扩展:若需 N:M 交替(如 5:2),只需将模数改为 N+M,并调整换行触发的余数值(如 5:2 → 模 7,触发点为 %7==5 和 %7==0)。
总结:掌握模运算与业务周期的映射关系,是实现动态行列布局的核心。避免硬编码行计数器,用数学规律驱动换行,代码更简洁、健壮、易维护。











