При переборе массива с помощью foreach
внутри цикла доступна специальная переменная
$loop
. Она обеспечивает доступ к некоторой
полезной информации об итерациях цикла.
Посмотрим на примерах. Пусть мы перебираем циклом некоторый массив:
@foreach ($arr as $elem)
{{ $elem }}
@endforeach
Давайте на примере этого массива
изучим возможности переменной $loop
.
Граничные итерации
Можно также узнать первая это или последняя итерация цикла:
@foreach ($arr as $elem)
@if ($loop->first)
первая итерация
@endif
@if ($loop->last)
последняя итерация
@endif
{{ $elem }}
@endforeach
Четность
Можно также узнать первая это или последняя итерация цикла:
@foreach ($arr as $elem)
@if ($loop->odd)
нечетная итерация
@endif
@if ($loop->even)
четная итерация
@endif
{{ $elem }}
@endforeach
Итерации
Можно узнать индекс текущей итерации (начинается с нуля):
@foreach ($arr as $elem)
{{ $loop->index }}
{{ $elem }}
@endforeach
Можно узнать номер текущей итерации (начинается с единицы):
@foreach ($arr as $elem)
{{ $loop->iteration }}
{{ $elem }}
@endforeach
Можно узнать, сколько итераций осталось:
@foreach ($arr as $elem)
{{ $loop->remaining }}
{{ $elem }}
@endforeach
Количество элементов
Можно узнать количество элементов в перебираемом массиве:
@foreach ($arr as $elem)
{{ $loop->count }}
{{ $elem }}
@endforeach
Практические задачи
Из действия в представление передается массив
со строками. Выведите элементы этого массива
в виде списка ul
. Сделайте так, чтобы
перед значением элемента, выводился еще и
порядковый номер итерации, начиная с 0
.
Модифицируйте предыдущую задачу так, чтобы
порядковый номер итерации начинался с 1
.
Модифицируйте предыдущую задачу так, чтобы
для первой li
добавлялся CSS класс
first
, а для последней - класс last
.
Из действия в представление передается массив
с числами. Выведите каждый элемент этого
массива в своем теге b
, а три последних
элемента массива - в теге i
.