web-dev-qa-db-fra.com

twig - construction d'un tableau dans la boucle

est-il possible de remplir de manière itérative un tableau twig array avec des valeurs?

{% for question in questions %}
{% set multipleChoiceArray = [] %}
    {% for multipleChoice in question.multipleChoiceAnswers %}
        {% set multipleChoiceArray = multipleChoiceArray|merge( multipleChoice.answerText )  %}
    {% endfor %}
{% endfor %}

le problème est ici multipleChoiceArray|merge(multipleChoice.answerText)

quand j'essaye de passer un tableau par exemple avec key = loop.index comme

{% set multipleChoiceArray = multipleChoiceArray|merge({"loop['index']":"multipleChoice['answerText']"})  %}

cela fonctionne mais le tableau contient les chaînes "[" loop ['index'] ":" multipleChoice ['answerText'] "]"

quand j'essaye de passer des variables comme:

{% set multipleChoiceArray = multipleChoiceArray|merge({loop.index:multipleChoice.answerText})  %}

exception: une clé de hachage doit être suivie de deux points (:). Jeton "ponctuation" inattendu de la valeur "." ("ponctuation" attendue avec la valeur ":")

donc je ne peux pas "pousser" une valeur "multipleChoice.answerText" dans "multipleChoiceArray"

des conseils sur la façon dont cela est possible? je veux juste rassembler toutes les réponses possibles et vérifier plus tard si la réponse est dans ce tableau et compter qch et afficher

20
john Smith

L'argument de la fusion doit être un tableau ou un objet pour le fusionner avec un existant. Donc, écrivez-le comme un tableau avec un élément.

{% set multipleChoiceAnswerText = multipleChoice.answerText %}
{% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText])  %}
44
Markus Kottländer