возможно ли итеративно заполнять массив веток со значениями?
{% for question in questions %} {% set multipleChoiceArray = [] %} {% for multipleChoice in question.multipleChoiceAnswers %} {% set multipleChoiceArray = multipleChoiceArray|merge( multipleChoice.answerText ) %} {% endfor %} {% endfor %}
проблема заключается здесь multipleChoiceArray|merge(multipleChoice.answerText)
когда я пытаюсь передать массив, например, с ключом = loop.index, например
{% set multipleChoiceArray = multipleChoiceArray|merge({"loop['index']":"multipleChoice['answerText']"}) %}
он работает, но массив содержит строки "[" loop ['index'] ":" multipleChoice ['answerText'] "]"
когда я пытаюсь передать такие переменные, как:
{% set multipleChoiceArray = multipleChoiceArray|merge({loop.index:multipleChoice.answerText}) %}
Исключение: хэш-ключ должен сопровождаться двоеточием (:). Неожиданный токен «пунктуация» значения ». («пунктуация» ожидается со значением «:»)
поэтому я не могу «нажать» значение «multipleChoice.answerText» в «multipleChoiceArray»,
любые подсказки, как это возможно? я просто хочу собрать все возможные ответы, а затем проверить, находится ли ответ в этом массиве, и подсчитывать и отображать
Аргумент слияния должен быть массивом или объектом, чтобы объединить его с существующим. Поэтому напишите его как массив с одним элементом.
{% set multipleChoiceAnswerText = multipleChoice.answerText %} {% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText]) %}