用于带键数组的循环的 Twig

我使用 Twig 并且我有一个像下面这样的键数组:

array[1] = "alpha"
array[2] = "bravo"
array[3] = "charlie"
array[8] = "delta"
array[9] = "echo"

我希望在一个循环中获得键 (1,2,3,8,9)和内容 (alpha, bravo, charlie, delta, echo),以获得这个数组的所有值。

我如何解决这个问题?

285322 次浏览

for标签上的 SensoLab 页面中有这样一个例子:

<h1>Members</h1>
<ul>
{% for key, user in users %}
<li>\{\{ key }}: \{\{ user.username|e }}</li>
{% endfor %}
</ul>

Http://twig.sensiolabs.org/doc/tags/for.html#iterating-over-keys

我找到了答案:

{% for key,value in array_path %}
Key : \{\{ key }}
Value : \{\{ value }}
{% endfor %}

我猜您想要执行“对键和值进行迭代”

正如文档 给你所说,只要在所需的变量中添加“ | key”,它就会神奇地发生。

{% for key, user in users %}
<li>\{\{ key }}: \{\{ user.username|e }}</li>
{% endfor %}

在问之前先搜索一下总没有坏处:)

这些是 Twig 框架中一维和二维数组的扩展操作(例如,排序、反向操作) :

一维阵列

没有键排序和反向

{% for key, value in array_one_dimension %}
<div>\{\{ key }}</div>
<div>\{\{ value }}</div>
{% endfor %}

键排序

{% for key, value in array_one_dimension|keys|sort %}
<div>\{\{ key }}</div>
<div>\{\{ value }}</div>
{% endfor %}

键排序和反向

{% for key, value in array_one_dimension|keys|sort|reverse %}
<div>\{\{ key }}</div>
<div>\{\{ value }}</div>
{% endfor %}

2D 数组

没有键排序和反向

{% for key_a, value_a in array_two_dimension %}
{% for key_b, value_b in array_two_dimension[key_a] %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}

外部数组的密钥排序

{% for key_a, value_a in array_two_dimension|keys|sort %}
{% for key_b, value_b in array_two_dimension[key_a] %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}

外数组和内数组的密钥排序

{% for key_a, value_a in array_two_dimension|keys|sort %}
{% for key_b, value_b in array_two_dimension[key_a]|keys|sort %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}

外部阵列的密钥排序及内部阵列的反向排序

{% for key_a, value_a in array_two_dimension|keys|sort %}
{% for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}

外部阵列的密钥排序和逆向排序及内部阵列的密钥排序

{% for key_a, value_a in array_two_dimension|keys|sort|reverse %}
{% for key_b, value_b in array_two_dimension[key_a]|keys|sort %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}

外数组和内数组的键排序与反向

{% for key_a, value_a in array_two_dimension|keys|sort|reverse %}
{% for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %}
<div>\{\{ key_b }}</div>
<div>\{\{ value_b }}</div>
{% endfor %}
{% endfor %}