twig - for循环中的构建数组

时间:2013-12-30 14:09:16

标签: php arrays symfony twig

是否可以用值迭代填充树枝数组?

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

问题出在multipleChoiceArray|merge(multipleChoice.answerText)

当我尝试使用key = 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”

任何提示如何可行? 我只想收集所有可能的答案,然后检查答案是否在该数组中并计算并显示

1 个答案:

答案 0 :(得分:44)

merge的参数必须是一个数组或对象,以将其与现有数据合并。所以把它写成一个带有一个元素的数组。

{% set multipleChoiceAnswerText = multipleChoice.answerText %}
{% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText])  %}