merge

这个 merge 筛选器将一个数组与另一个数组合并:

1
2
3
4
5
{% set values = [1, 2] %}

{% set values = values|merge(['apple', 'orange']) %}

{# values now contains [1, 2, 'apple', 'orange'] #}

在现有值的末尾添加新值。

这个 merge 过滤器也适用于哈希:

1
2
3
4
5
{% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}

{% set items = items|merge({ 'peugeot': 'car', 'renault': 'car' }) %}

{# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car', 'renault': 'car' } #}

对于散列,合并过程发生在键上:如果键不存在,它将被添加,但是如果键已经存在,它的值将被覆盖。

小技巧

如果要确保在数组中定义了某些值(根据给定的默认值),请反转调用中的两个元素:

1
2
3
4
5
{% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}

{% set items = { 'apple': 'unknown' }|merge(items) %}

{# items now contains { 'apple': 'fruit', 'orange': 'fruit' } #}

注解

在内部,Twig使用PHP array_merge 功能。它通过将可遍历对象转换为数组来支持这些对象。