Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Filters batch
You are reading the documentation for Twig 3.x. Switch to the documentation for Twig 1.x, 2.x.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

batch

The batch filter "batches" items by returning a list of lists with the given number of items. A second parameter can be provided and used to fill in missing items:

1
2
3
4
5
6
7
8
9
10
11
{% set items = ['a', 'b', 'c', 'd'] %}

<table>
    {% for row in items|batch(3, 'No item') %}
        <tr>
            {% for index, column in row %}
                <td>{{ index }} - {{ column }}</td>
            {% endfor %}
        </tr>
    {% endfor %}
</table>

The above example will be rendered as:

1
2
3
4
5
6
7
8
9
10
11
12
<table>
    <tr>
        <td>0 - a</td>
        <td>1 - b</td>
        <td>2 - c</td>
    </tr>
    <tr>
        <td>3 - d</td>
        <td>4 - No item</td>
        <td>5 - No item</td>
    </tr>
</table>

If you choose to set the third parameter preserve_keys to false, the keys will be reset in each loop.

1
2
3
4
5
6
7
8
9
10
11
{% set items = ['a', 'b', 'c', 'd'] %}

<table>
    {% for row in items|batch(3, 'No item', false) %}
        <tr>
            {% for index, column in row %}
                <td>{{ index }} - {{ column }}</td>
            {% endfor %}
        </tr>
    {% endfor %}
</table>

The above example will be rendered as:

1
2
3
4
5
6
7
8
9
10
11
12
<table>
    <tr>
        <td>0 - a</td>
        <td>1 - b</td>
        <td>2 - c</td>
    </tr>
    <tr>
        <td>0 - d</td>
        <td>1 - No item</td>
        <td>2 - No item</td>
    </tr>
</table>

Arguments

  • size: The size of the batch; fractional numbers will be rounded up
  • fill: Used to fill in missing items
  • preserve_keys: Whether to preserve keys or not (defaults to true)