php 带有键的数组的 Twig for 循环

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10299202/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 21:51:31  来源:igfitidea点击:

Twig for loop for arrays with keys

phparraysloopstwig

提问by Guillaume

I use Twig and I have an array with keys like this:

我使用 Twig 并且我有一个带有如下键的数组:

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

And I would like to get the key (1,2,3,8,9)and the content (alpha, bravo, charlie, delta, echo)in a loop to get all value of this array.

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

How do I solve this problem?

我该如何解决这个问题?

回答by Guillaume

I found the answer :

我找到了答案:

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

回答by dkinzer

There's this example in the SensioLab page on the fortag:

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

<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

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

回答by Emma

These are also extended options (e.g., sort, reverse) for both 1D and 2D arrays in Twig:

这些也是 Twig 中一维和二维数组的扩展选项(例如,排序、反向):

1D Array

一维数组

Without Key Sort and Reverse

无键排序和反转

{% for key, value in 1D_array %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}


Key Sort

键排序

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


Key Sort and Reverse

键排序和反转

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


2D Arrays

二维数组

Without Key Sort and Reverse

无键排序和反转

{% for key1, value1 in 2D_array %}
    {% for key2, value2 in 2D_array[key1] %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}


Key Sort on Outer Array

外部数组的键排序

{% for key1, value1 in 2D_array|keys|sort %}
    {% for key2, value2 in 2D_array[key1] %}
        <div>{{ key2 }}</div>
        <div>{{ value2 }}</div>
    {% endfor %}
{% endfor %}


Key Sort on Both Outer and Inner Arrays

外部和内部数组的键排序

{% 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 %}


Key Sort on Outer Array & Key Sort and Reverse on Inner Array

外部数组的键排序和内部数组的键排序和反转

{% 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 %}


Key Sort and Reverse on Outer Array & Key Sort on Inner Array

外部数组的键排序和反转 & 内部数组的键排序

{% 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 %}


Key Sort and Reverse on Both Outer and Inner Array

外部和内部数组的键排序和反转

{% 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 %}

回答by imcoddy

I guess you want to do the "Iterating over Keys and Values"

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

As the doc heresays, just add "|keys" in the variable you want and it will magically happen.

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

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

It never hurts to search before asking :)

在询问之前搜索永远不会有什么坏处:)