Добавить код после 3 результатов foreach

175
12 апреля 2018, 12:02

Есть цикл выводящий элементы каталога:

foreach ($arResult['ITEMS'] as $key => $arItem)
{

После 3 результатов нужно добавить изображение и продолжить вывод. Как проверить что уже выведено 3 элемента и добавить код?

Answer 1

Если у вас $key числовое значение и они идут по порядку, то можно просто сделать.

После каждых 3

 foreach ( $arResult[ 'ITEMS' ] as $key => $arItem ) {
    if ( $key % 3 == 0 ) {
        /*тут код*/
    }
 }

После первых 3

 foreach ( $arResult[ 'ITEMS' ] as $key => $arItem ) {
        if ( $key == 2) {
            /*тут код*/
        }
     }
Answer 2

А если $key нечисловое, то можно сделать с помощью переменной-счётчика:

после первых трёх:

foreach ($arResult['ITEMS'] as $key => $arItem) {
  $i++;
  echo $arItem;
  if ($i == 3) {
     echo <картинка>;
  }
}

после каждых трёх:

foreach ($arResult['ITEMS'] as $key => $arItem) {
  $i++;
  echo $arItem;
  if ($i % 3 == 0) {
     echo <картинка>;
  }
}
READ ALSO
Получить текущий url

Получить текущий url

необходимо получить текущий адрес страницы для чего использую $_SERVER['REQUEST_URI'] в итоге получается /razdel/indexhtml Подскажите как получить текущий...

172
Проблема с кодировкой CakePHP

Проблема с кодировкой CakePHP

Всем приветПодкинули задачку с одним древним сайтом на cakephp

183
Поиск в wordpress не работает

Поиск в wordpress не работает

Помогите пожалуйста, пытаюсь натянуть на стандартную тему Поиск, но он не работает, проблема в названии стандартной темы, пытаюсь её переделать,...

189
Проблема передачи массива JSON на сервер AJAX + PHP

Проблема передачи массива JSON на сервер AJAX + PHP

Задача не очень сложная, получить телефоны из формы, преобразовать в массив, и отправить на серверОтладка консоли хрома все видно, массив...

170