Twig

灵活、快速和安全
PHP 的模板引擎

a Symfony Product
Docs Filters filter
您正在阅读 Twig 3.x 的文档。切换到 Twig 1.x, 2.x 的文档。

问题与反馈

许可证

Twig documentation 在新的 BSD license 许可证下获得许可。

过滤器

filter 过滤器使用箭头函数过滤序列或映射的元素。箭头函数接收序列或映射的值

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

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

for 标签结合使用,它允许过滤要迭代的项目

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

它也适用于映射

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 #}

箭头函数还会收到作为第二个参数的键

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

请注意,箭头函数可以访问当前上下文。

参数

  • array: 序列或映射
  • arrow: 箭头函数