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 功能。它通过将可遍历对象转换为数组来支持这些对象。