本文详解如何使用 php 的 while 或 for 循环,结合取模运算动态控制换行,实现「前两行按 3-4 交替、后续循环重复」的数字网格输出(如 1–14 排成 3/4/3/4 列模式)。
要实现类似 1 2 3(3个)、4 5 6 7(4个)、8 9 10(3个)、11 12 13 14(4个)这样的 3:4 交替行布局,核心在于按序号规律识别何时换行,而非简单判断 $i
关键思路是:观察目标输出中换行位置对应的数字——换行发生在第 3、7、10、14… 个数之后。这些位置的共同数学特征是:以 7 为周期,余数为 3 或 0(即 i % 7 == 3 或 i % 7 == 0)。验证如下:
- 3 % 7 = 3 → 第3个后换行(结束第1行)
- 7 % 7 = 0 → 第7个后换行(结束第2行)
- 10 % 7 = 3 → 第10个后换行(结束第3行)
- 14 % 7 = 0 → 第14个后换行(结束第4行)
因此,可使用 in_array($i % 7, [0, 3]) 判断是否需换行。注意:该逻辑适用于从 i = 1 开始、连续自然数的场景,且总项数应为 7×k 或兼容截断(如本例 14 项恰为 2 个完整周期)。
以下是推荐的健壮实现(修正原 while 逻辑,并提供 for 版本):