循环的Twig和带键的数组

Gui*_*ume 142 php arrays loops twig

我使用Twig,我有一个像这样的键的数组:

array[1] = "alpha"
array[2] = "bravo"
array[3] = "charlie"
array[8] = "delta"
array[9] = "echo"
Run Code Online (Sandbox Code Playgroud)

我想在循环中获取密钥(1,2,3,8,9)和内容(alpha, bravo, charlie, delta, echo)以获取此数组的所有值.

我怎么能这样做?

谢谢

Gui*_*ume 310

我找到了答案:

{% for key,value in array_path %}
    Key : {{ key }}
    Value : {{ value }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

  • 这是官方文档的链接:http://twig.sensiolabs.org/doc/tags/for.html#iterating-over-keys-and-values (2认同)

dki*_*zer 54

for标签上的SensioLab页面中有这个例子:

<h1>Members</h1>
<ul>
    {% for key, user in users %}
        <li>{{ key }}: {{ user.username|e }}</li>
    {% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

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

  • 此示例不会遍历数组键,请参阅上面的 (2认同)

Emm*_*mma 6

这些也是Twig中1D和2D数组的扩展选项(例如,排序,反向):

一维阵列

没有密钥排序和反向

{% for key, value in 1D_array %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

键排序

{% for key, value in 1D_array|keys|sort %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

按键排序和反向

{% for key, value in 1D_array|keys|sort|reverse %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

2D阵列

没有密钥排序和反向

{% for key1, value1 in 2D_array %}
    {% for key2, value2 in 2D_array[key1] %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

外部阵列上的键排序

{% for key1, value1 in 2D_array|keys|sort %}
    {% for key2, value2 in 2D_array[key1] %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

外部和内部阵列上的键排序

{% for key1, value1 in 2D_array|keys|sort %}
    {% for key2, value2 in 2D_array[key1]|keys|sort %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

外层阵列上的按键排序和内层阵列上的按键排序和反向

{% for key1, value1 in 2D_array|keys|sort %}
    {% for key2, value2 in 2D_array[key1]|keys|sort|reverse %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

外部阵列上的键排序和反向和内部阵列上的键排序

{% for key1, value1 in 2D_array|keys|sort|reverse %}
    {% for key2, value2 in 2D_array[key1]|keys|sort %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

外部和内部阵列上的键排序和反向

{% for key1, value1 in 2D_array|keys|sort|reverse %}
    {% for key2, value2 in 2D_array[key1]|keys|sort|reverse %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)


imc*_*ddy 5

我猜你想做“迭代键和值”

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

{% for key, user in users %}
    <li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

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

  • 我给你 10 分,因为你有 308 分,但你回答“问之前先搜索一下总没有坏处”很糟糕,所以我把它去掉 (7认同)
  • 您没有在答案中显示使用“|keys”的示例。 (5认同)