Twig for循环用于带键的数组


152

我使用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)以获取此数组的所有值。

我该如何解决这个问题?


1
您是否尝试搜索PHP循环?使用foreach循环。
2012年

3
它不在PHP中,而在Twig中在模板文件中!
纪尧姆

3
很公平。您是否尝试搜索TWIG循环?twig.sensiolabs.org/doc/tags/for.html
乔什(Josh)

Answers:




15

这些是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 %}

2

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

就像这里的文档所说的那样,只需在所需的变量中添加“ | keys”,它就会神奇地发生。

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

询问之前搜索永远不会受伤:)


4
您还没有显示在答案中使用“ |键”的示例。
Adambean '17

6
我给你10分是因为你有308分,但是你回答“问问之前搜索永远不会痛”很烂,所以我把它拿出来了
Braian Mellor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.