Setting element of array from Twig

There is no nice way to do this in Twig. It is, however, possible by using the merge filter:

{% set arr = arr|merge({'element': 'value'}) %}

If element is a variable, surround it with brackets:

{% set arr = arr|merge({(element): 'value'}) %}

I ran into this problem but was trying to create integer indexes instead of associative index like 'element'.

You need to protect your index key with () using the merge filter as well:

{% set arr = arr|merge({ (loop.index0): 'value'}) %} 

You can now add custom index key like ('element'~loop.index0)


If initialization only need:

{% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}

Tags:

Php

Twig