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.
You can use the modulo operator %
to get the remainder when dividing.
@switch($loop->index % 10)
@case(0)
// 10,20,30 case...
@break
@case(1)
// Second case...
@break
@default
// otherwise
@endswitch
You can use switch, but you can use your @if/@elseif as well.
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)
you can save the modulus result to a variable first $index = $loop->index % 10;
@if ($index == 0)
//do something
@elseif ($index == 4)
// do something
@elseif ($index == 9)
// do something
@endif```
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.