twig - for循环中的构建数组

joh*_*ith 20 php arrays symfony twig

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

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

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

当我尝试传递一个数组,例如使用key = loop.index之类的

{% set multipleChoiceArray = multipleChoiceArray|merge({"loop['index']":"multipleChoice['answerText']"})  %}
Run Code Online (Sandbox Code Playgroud)

它工作但数组包含字符串"["loop ['index']":"multipleChoice ['answerText']"]"

当我尝试传递变量,如:

{% set multipleChoiceArray = multipleChoiceArray|merge({loop.index:multipleChoice.answerText})  %}
Run Code Online (Sandbox Code Playgroud)

例外是:哈希键后面必须跟冒号(:).意外的标记"标点符号"的值"." ("标点符号"预期值":")

所以我无法将"multipleChoice.answerText"值"推"到"multipleChoiceArray"中

有什么提示可行吗?我只想收集所有可能的答案,然后检查答案是否在该阵列中并计算并显示

Mar*_*der 44

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

{% set multipleChoiceAnswerText = multipleChoice.answerText %}
{% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText])  %}
Run Code Online (Sandbox Code Playgroud)

  • 是的设置是非常忍者.您还可以使用set将对象数组分配给变量,然后循环遍历它们.{%set cameras = {"family1":firstArray,"family2":secondArray}%} {%表示标识符,相机中的项目%} (2认同)