{% set arr = arr|merge({ (loop.index0): 'value'}) %}
您现在可以添加自定义索引键,如 ('element'~loop.index0)
70
只需使用 {% set arr={'key':'value'} %} (':'后没有空格)就可以了,效果很好 . 但是当我使用'for'制作一个数组时,它无法在for区域外工作 .
{% for group in user.groups %}
{% set foo={'loop.index0':'group.id'} %}
{% set title={'loop.index0':'group.title'} %}
{{ title }} //it work
{% else %}
{% set foo={'0':'-1'} %}
{% set title={'0':'未分组'} %}
{% endfor %}
{{ title }} //it not work, say title is not defined
8 回答
我遇到了这个问题但是试图创建整数索引而不是像'element'这样的关联索引 .
您还需要使用合并筛选器使用
()
保护索引键:您现在可以添加自定义索引键,如
('element'~loop.index0)
只需使用
{% set arr={'key':'value'} %}
(':'后没有空格)就可以了,效果很好 . 但是当我使用'for'制作一个数组时,它无法在for区域外工作 .谢谢你的关注 . (英语不好,对不起!)
如果初始化只需要:
感谢这个帖子 - 我也能用(loop.index0)创建一个数组并发送给twig .
在Twig中没有很好的办法 . 但是,可以使用合并过滤器:
我已经尝试了@LivaX的答案,但它不起作用,合并一个数字键,数字不会工作(https://github.com/twigphp/Twig/issues/789) .
这只有在键是字符串时才有效
我所做的是从初始表(
t
)重新创建另一个表(temp
)并将键设为字符串,例如:t
键:0,1,2 ..temp
键:0_,1_,2_ ....我有一个多维数组 . 我能找到的唯一解决方案是创建一个新的临时数组和 update/add 信息,这些信息进一步传递给另一个twig函数 .
我发现这个问题非常烦人,我的解决方案可能是正统的,不符合Twig哲学,但我开发了以下内容:
可以使用如下:
{%set arr = set_element(arr,'element','value')%}