web-dev-qa-db-ja.com

キーを持つ配列のためのTwig forループ

私は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)をループで取得したいと思います。

どうやってこの問題を解決しますか?

136
Guillaume

私は答えを見つけました:

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

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

53
dkinzer

私はあなたが「キーと値の反復」をしたいと思うでしょう

ドキュメント ここ が言うように、欲しい変数に "| keys"を追加するだけで魔法のように起こります。

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

それは尋ねる前に検索するのに害はありません:)

2
imcoddy

Twigの1次元配列と2次元配列の両方に対する拡張オプションもあります。

1次元アレイ

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

2Dアレイ

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

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

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

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