贝利信息

如何用取模运算简化索引分组条件判断(如 0/10/20…、1/11/21…)

日期:2026-01-04 00:00 / 作者:花韻仙語

本文介绍如何利用取模运算(%)优雅替代冗长的硬编码索引判断,将重复模式(如每10个索引一组)转化为简洁、可维护的条件逻辑,适用于 blade 模板或 php 循环场景。

在循环渲染(如 Laravel Blade 的 @foreach)中,若需对特定索引模式执行不同操作——例如:索引 0, 10, 20, 30... 执行 A 动作;1, 11, 21, 31... 执行 B 动作;2, 12, 22, 32... 执行 C 动作——直接罗列所有可能值(如 $loop->index == 0 || $loop->index == 10 || ...)不仅代码臃肿,更难以维护和扩展。

根本解法是识别规律:这些索引均属于同一模 10 同余类。即:

因此,只需对 $loop->index 取模 10,即可用单一数值代表其所属周期位置。

✅ 推荐写法:使用 @switch(Blade 中最清晰)

@switch($loop->index % 10)
    @case(0)
        
        Section A
        @break

    @case(1)
        
        Item in Group 1
        @break

    @case(2)
        
        Item in Group 2
        @break

    @case(9)
        
        Footer Row
        @break

    @default
        
        Default layout
@endswitch

✅ 替代写法:精简 @if 链(兼容性更强)

@if ($loop->index % 10 === 0)
    
@elseif ($loop->index % 10 === 1)
    
@elseif ($loop->index % 10 === 2)
    
@elseif ($loop->index % 10 === 9)
    
@endif

⚠️ 注意事项

掌握取模思维,不仅能简化索引分组,还可用于实现栅格布局(如每行 3 列)、分页高亮、交替样式(% 2)、校验码生成等常见开发场景。让代码从“能运行”走向“易理解、易维护”。