[Twig] How to use the for statement and a simple example introduction

I would like to introduce how to use the for statement of Twig and a simple example.
I think that the loop statement by for has many uses.

Official:for – Documentation

How to use for statement in Twig

I will summarize the basic usage.

{# sample array #}
{% set users = ['foo', 'bar'] %}

<ul>
    {% for user in users %}
        <li>{{ user }}</li>
    {% endfor %}
</ul>

{# result #}
<ul>
    <li>foo</li>
    <li>bar</li>
</ul>

If you want to iterate a certain number of series of processes, write as follows.

{# use the .. operator #}
{% for i in 0..5 %}
    * {{ i }}<br>
{% endfor %}

{# result #}
* 0<br>
* 1<br>
* 2<br>
* 3<br>
* 4<br>
* 5<br>

Not only numbers but also letters such as alphabets are possible.

{% for letter in 'a'..'c' %}
    * {{ letter }}<br>
{% endfor %}

{# result #}
* a<br>
* b<br>
* c<br>

{# can use any expression #}
{% for letter in 'a'|upper..'z'|upper %}
    * {{ letter }}
{% endfor %}

You can also use Twig’s expression in your expressions. In the above example, uppercase letters A to Z are displayed.It is also possible to give only one side.

Example of using for statement in Twig

Get index

When using a certain number of times, i is specified, but index can be obtained in other cases.

{# use loop.index (1 indexed) #}
{% set users = ['foo', 'bar'] %}
<ul>
    {% for user in users %}
        <li>{{ loop.index }}-{{ user }}</li>
    {% endfor %}
</ul>

{# result #}
<ul>
    <li>1-foo</li>
    <li>2-bar</li>
</ul>

You can get the iteration of the current loop. If you want to start from “0”, use loop.index0 .

Determine the beginning (end) of the loop

{% set users = ['foo', 'bar', 'baz'] %}

{# use loop.first #}
{% for user in users %}
    {% if loop.first %}
        {{ user }}
    {% endif %}
{% endfor %}

{# result #}
foo

The above example determines the first loop. For the last case, use loop.last.
Loop is other You can use loop.length, loop.revindex, loop.revindex0, loop.parent, etc.

Use by adding conditions

{% set users = [
    {
        'name': 'foo',
        'active': true
    },
    {
        'name': 'bar',
        'active': false
    },
    {
        'name': 'baz',
        'active': true
    }
] %}

{% for user in users if user.active %}
    {{ user.name }}<br>
{% endfor %}

{# result #}
foo
baz

In the above example, the condition is added so that only the active user name is displayed.

Get both KEY and Value from the array

{% set users = [
    {
        'name': 'foo',
        'active': true
    },
    {
        'name': 'bar',
        'active': false
    },
    {
        'name': 'baz',
        'active': true
    }
] %}

{% for key, user in users %}
    {{ key }}: {{ user.name }}<br>
{% endfor %}

{# result #}
0: foo
1: bar
2: baz

 
If you want to get the Key and Value, it will be above.

Originally I hated mathematics and was a liberal arts student, but when I started studying programs, I remember it was very difficult to understand arrays, for loops, and foreach. So I tried to explain it a little carefully.
Also, I will add it when I use it as a sample.