NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# `merge` The `merge` filter merges an array with another array: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 5</pre></div></td><td class="code"><div class="highlight"><pre>{% set values = [1, 2] %} {% set values = values|merge(['apple', 'orange']) %} {# values now contains [1, 2, 'apple', 'orange'] #} </pre></div></td></tr></table> New values are added at the end of the existing ones. The `merge` filter also works on hashes: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 5</pre></div></td><td class="code"><div class="highlight"><pre>{% 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' } #} </pre></div></td></tr></table> For hashes, the merging process occurs on the keys: if the key does notalready exist, it is added but if the key already exists, its value isoverridden. Tip If you want to ensure that some values are defined in an array (by givendefault values), reverse the two elements in the call: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 5</pre></div></td><td class="code"><div class="highlight"><pre>{% set items = { 'apple': 'fruit', 'orange': 'fruit' } %} {% set items = { 'apple': 'unknown' }|merge(items) %} {# items now contains { 'apple': 'fruit', 'orange': 'fruit' } #} </pre></div></td></tr></table> Note Internally, Twig uses the PHP [array_merge](http://php.net/array_merge) [http://php.net/array_merge] function. It supportsTraversable objects by transforming those to arrays.