'How to write a simple if-statement for indexes 0 and 10, 1 and 11, 2 and 12 etc [duplicate]

I need to write a condition for the index. First condition do a function for indexes 0, 10, 20, 30 Second condition do a function for index 1, 11, 21, 31 Third condition do a function for index 2, 12, 22, 32 (..)

Actually I have look like:

@if ($loop->index == 0 || $loop->index == 10 || $loop->index == 20 || $loop->index == 30 || $loop->index == 40 || $loop->index == 50 || $loop->index == 60 || $loop->index == 70 || $loop->index == 80 || $loop->index == 90) 
   
     //do something
    
        ...
        
@elseif ($loop->index == 4 || $loop->index == 14 || $loop->index == 24 || $loop->index == 34 || $loop->index == 44 || $loop->index == 54 || $loop->index == 64 || $loop->index == 74 || $loop->index == 84 || $loop->index == 94) 

        ...

     // do something

@elseif ($loop->index == 9 || $loop->index == 19 || $loop->index == 29 || $loop->index == 39 || $loop->index == 49 || $loop->index == 59 || $loop->index == 69 || $loop->index == 79 || $loop->index == 89 || $loop->index == 99) 

    // do something

@endif

I know it doesn't look good, it works for me now, but I need advice because I have no idea how to write it a bit simpler.

All the best, Thanks.



Solution 1:[1]

For the first if use

if ($loop->index % 10 == 0)

for the second if use

if (($loop->index-4) % 10 == 0)

and for the last one use

if (($loop->index-9) % 10 == 0)

Solution 2:[2]

you can save the modulus result to a variable first $mod = (($loop->index > 9 ) ? ($loop->index % 10) : $loop->index);

@if ($mod == 0) 
     //do something
        
@elseif ($mod == 4) 

     // do something

@elseif ($mod == 9) 

    // do something

@endif         
    

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 alireza.2281
Solution 2