Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Filters filter
You are reading the documentation for Twig 2.x. Switch to the documentation for Twig 1.x. 3.x.
Warning Twig version 2.x end of maintenance is scheduled for December 2023.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

filter

2.10

The filter filter was added in Twig 2.10.

The filter filter filters elements of a sequence or a mapping using an arrow function. The arrow function receives the value of the sequence or mapping:

1
2
3
4
{% set sizes = [34, 36, 38, 40, 42] %}

{{ sizes|filter(v => v > 38)|join(', ') }}
{# output 40, 42 #}

Combined with the for tag, it allows to filter the items to iterate over:

1
2
3
4
{% for v in sizes|filter(v => v > 38) -%}
    {{ v }}
{% endfor %}
{# output 40 42 #}

It also works with mappings:

1
2
3
4
5
6
7
8
9
10
11
12
{% set sizes = {
    xs: 34,
    s:  36,
    m:  38,
    l:  40,
    xl: 42,
} %}

{% for k, v in sizes|filter(v => v > 38) -%}
    {{ k }} = {{ v }}
{% endfor %}
{# output l = 40 xl = 42 #}

The arrow function also receives the key as a second argument:

1
2
3
4
{% for k, v in sizes|filter((v, k) => v > 38 and k != "xl") -%}
    {{ k }} = {{ v }}
{% endfor %}
{# output l = 40 #}

Note that the arrow function has access to the current context.

Arguments

  • array: The sequence or mapping
  • arrow: The arrow function
Website powered by Symfony and Twig, deployed on
The Twig logo is © 2010-2024 Symfony