Reputation: 17906
is it possible to iteratively fill a twig array with values?
{% for question in questions %}
{% set multipleChoiceArray = [] %}
{% for multipleChoice in question.multipleChoiceAnswers %}
{% set multipleChoiceArray = multipleChoiceArray|merge( multipleChoice.answerText ) %}
{% endfor %}
{% endfor %}
the problem is here multipleChoiceArray|merge(multipleChoice.answerText)
when i try to pass an array for example with key = loop.index like
{% set multipleChoiceArray = multipleChoiceArray|merge({"loop['index']":"multipleChoice['answerText']"}) %}
it works but the array contains the strings "["loop['index']":"multipleChoice['answerText']"]"
when i try to pass variables like :
{% set multipleChoiceArray = multipleChoiceArray|merge({loop.index:multipleChoice.answerText}) %}
exception is : A hash key must be followed by a colon (:). Unexpected token "punctuation" of value "." ("punctuation" expected with value ":")
so i am not able to "push" a value "multipleChoice.answerText" into "multipleChoiceArray"
any hints how that is possible ? i just want to gather all possible answers and later check if answer is in that array and count sth up and display
Upvotes: 26
Views: 39331
Reputation: 8268
The argument of merge has to be an array or object to merge it with an existing one. So write it as an array with one element.
{% set multipleChoiceAnswerText = multipleChoice.answerText %}
{% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText]) %}
Upvotes: 48