【问题标题】:Twig for loop for arrays with keys带有键的数组的 Twig for 循环
【发布时间】:2012-05-05 03:58:58
【问题描述】:

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

我该如何解决这个问题?

【问题讨论】:

标签: php arrays loops twig


【解决方案1】:

我找到了答案:

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

【讨论】:

【解决方案2】:

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

<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

【讨论】:

  • 这个例子没有遍历数组键,见上面的
【解决方案3】:

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

二维数组

没有键排序和反转

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

【讨论】:

    【解决方案4】:

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

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

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

    在询问之前搜索永远不会有害:)

    【讨论】:

    • 您没有在答案中展示使用“|keys”的示例。
    • 我给你 10 分,因为你有 308 分,但你回答“在询问之前搜索永远不会伤害”很糟糕,所以我把它拿出来
    猜你喜欢
    • 2019-03-18
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2020-03-02
    • 2022-01-04
    相关资源
    最近更新 更多