本文介绍如何用 php 模运算符(%)替代冗长的硬编码索引判断,实现对索引 0/10/20…、1/11/21… 等每 10 个一组的简洁分组逻辑。
在 Blade 模板或 PHP 逻辑中,当需要根据循环索引(如 $loop->index)执行不同操作,并且这些索引呈现「周期性规律」——例如 0, 10, 20, 30... 属于第 0 组;1, 11, 21, 31... 属于第 1 组;依此类推——直接枚举所有可能值(如 == 0 || == 10 || == 20...)不仅代码冗长、难以维护,还极易出错,尤其当索引范围扩大时。
核心思路:利用模运算提取索引的「个位周期特征」
$loop->index % 10 的结果恒为 0 到 9 之间的整数,恰好对应你所需的 10 个分组类别:
✅ 推荐写法:使用 @switch(语义清晰、可读性强)
@switch($loop->index % 10)
@case(0)
{{-- 对应索引 0, 10, 20, 30... --}}
Section A
@break
@case(1)
{{-- 对应索引 1, 11, 21, 31... --}}
Section B
@break
@case(2)
{{-- 对应索引 2, 12, 22, 32... --}}
Section C
@break
@default
{{-- 其他情况(可选) --}}
Regular item
@endswitch✅ 备选写法:精简版 @if / @elseif(兼容性更广)
@if ($loop->index % 10 === 0)
{{-- Group 0 --}}
@elseif ($loop->index % 10 === 1)
{{-- Group 1 --}}
@elseif ($loop->index % 10 === 2)
{{-- Group 2 --}}
@elseif ($loop->index % 10 === 3)
{{-- Group 3 --}}
@else
{{-- Group 4–9 或统一处理(按需调整) --}}
@endif⚠️ 注意事项与最佳实践
为 5;逻辑完全复用。 通过模运算重构后,你的条件逻辑从数十行硬编码压缩为几行语义化代码,既提升了可读性与可维护性,也体现了对基础编程原理的合理运用。