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.