Twig使用变量进行迭代


Twig iterate with variables

我有一个这样的数组:

array['a'] = {x => 1, y => 2...}
array['b'] = {x => 5, y => 7...}

我需要对数组进行迭代,但在每种情况下,我只需要在我选择的"a"或"b"中输入。

{% for i in main %}
    {% set id = i.getId %}
    {% for j in array.id %}
         //do something like j.propertyA ...
    {% endfor %}
{% endfor %}

失败总是得到错误:"键为‘a’、‘b’的数组的键‘id’…不存在"

如果我强制写入:

{% for j in array.a %}

这个程序总是能很好地处理array.a,但我需要自动处理所有的。

知道吗?感谢:)

{% for j in array.id %}更改为{% for j in array[id] %}

这是因为您试图直接从数组(未定义)访问"id"(已写入)。使用[id],您的变量将用其值替换,因此您的调用不会失败

我认为您需要array|keys-trick-filter。查看更多信息:http://twig.sensiolabs.org/doc/filters/keys.html.