a Sensio Labs Product

The flexible, fast, and secure
template engine for PHP

Filters » merge

Questions & Feedback

License

Creative Commons License Twig documentation is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

mergeΒΆ

The merge filter merges an array with another array:

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

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

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

New values are added at the end of the existing ones.

The merge filter also works on hashes:

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

For hashes, the merging process occurs on the keys: if the key does not already exist, it is added but if the key already exists, its value is overridden.

Tip

If you want to ensure that some values are defined in an array (by given default values), reverse the two elements in the call:

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

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

{# items now contains { 'apple': 'fruit', 'orange': 'fruit' } #}
This website is powered by PHP and Twig. The Twig logo is © 2010-2012 Sensio Labs