Для достижения желаемого результата, вы можете использовать цикл `for` в шаблоне category.twig, который будет проходить по каждому товару в массиве. При каждом третьем товаре будет выводиться соответствующий баннер из массива `bannersCat`. Для того чтобы гарантировать, что баннеры не повторяются, можно следить за индексом текущего товара и использовать оператор деления по модулю.
Пример кода на Twig:
```twig
{% for product in products %}
{{ product.name }} {% if loop.index is divisibleby(3) %} {{ bannersCat[loop.index0 // 3] }} {% endif %}
{% endfor %}
```
В этом примере `loop.index` представляет текущий индекс товара (начиная с 1), а `loop.index0` представляет текущий индекс товара, начиная с 0. Используя операторы деления по модулю (`is divisibleby`), мы проверяем, является ли текущий индекс товара кратным трём. Если это так, то выводим соответствующий баннер из массива `bannersCat` с помощью индекса `loop.index0 // 3`.
Пожалуйста, учтите, что это только пример. Вы должны настроить его в соответствии с вашей системой и данными.