PHP 实现 3:4 交替行布局的循环输出教程

1次阅读

PHP 实现 3:4 交替行布局的循环输出教程

本文讲解如何使用 phpwhilefor 循环,按“每行 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免费学习笔记(深入)”;

php // ✅ 推荐方案:for 循环 + 模运算判断换行点 for ($i = 1; $i <= 14; $i++) {     echo $i;     // 在第3、第7、第10、第14个数后换行:对应余数 3 和 0(因 7%7=0, 14%7=0)     if ($i % 7 == 3 || $i % 7 == 0) {         echo '
'; } 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)。

总结:掌握模运算与业务周期的映射关系,是实现动态行列布局的核心。避免硬编码行计数器,用数学规律驱动换行,代码更简洁、健壮、易维护。

text=ZqhQzanResources