キーを持つ配列の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ループを使用します。
Josh

3
PHPではなく、テンプレートファイルのTwigにあります!
ギヨーム

3
けっこうだ。TWIGループを検索してみましたか?twig.sensiolabs.org/doc/tags/for.html
Josh

回答:




15

これらは、Twigフレームワークにおける1次元および2次元配列の拡張操作(ソート、リバースなど)です。

1D配列

キーのソートおよびリバースなし

{% 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
回答で「|キー」の使用例を示していません。
アダムビーン2017

6
308ポイントあるので10をあげますが、「尋ねる前に検索するのは決して
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.