Zweig für Schleife für Arrays mit Schlüsseln


152

Ich benutze Twig und habe ein Array mit Schlüsseln wie diesen:

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

Und ich möchte den Schlüssel (1,2,3,8,9)und den Inhalt (alpha, bravo, charlie, delta, echo)in einer Schleife erhalten, um den gesamten Wert dieses Arrays zu erhalten.

Wie löse ich dieses Problem?


1
Haben Sie versucht, PHP-Schleifen zu durchsuchen? Verwendung foreachSchleife.
Josh

3
Es ist nicht in PHP, es ist in Twig in der Vorlagendatei!
Guillaume

3
Meinetwegen. Haben Sie versucht, nach TWIG-Loops zu suchen? twig.sensiolabs.org/doc/tags/for.html
Josh

Antworten:




15

Dies sind erweiterte Operationen (z. B. Sortieren, Umkehren) für eindimensionale und zweidimensionale Arrays im Twig-Framework:

1D Array

Ohne Schlüsselsortierung und Umkehrung

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

Schlüsselsortierung

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

Schlüsselsortierung und -umkehr

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

2D-Arrays

Ohne Schlüsselsortierung und Umkehrung

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

Schlüsselsortierung auf dem äußeren Array

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

Schlüsselsortierung auf äußeren und inneren Arrays

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

Schlüsselsortierung auf dem äußeren Array und Schlüsselsortierung und Umkehrung auf dem inneren Array

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

Schlüsselsortierung und Umkehrung auf dem äußeren Array und Schlüsselsortierung auf dem inneren Array

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

Schlüsselsortierung und -umkehr auf dem äußeren und inneren Array

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

Ich denke, Sie möchten das "Iterieren über Schlüssel und Werte" durchführen.

Wie das Dokument hier sagt, fügen Sie einfach "| keys" in die gewünschte Variable ein und es wird auf magische Weise passieren.

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

Es tut nie weh zu suchen, bevor man fragt :)


4
Sie haben in Ihrer Antwort kein Beispiel für die Verwendung von "| Schlüsseln" gezeigt.
Adambean

6
Ich gebe Ihnen 10, weil Sie 308 Punkte haben, aber Sie antworten "Es tut nie weh zu suchen, bevor Sie fragen" saugt, also nehme ich es heraus
Braian Mellor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.