我有一个这样的数组:
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.