Twig for loop pour tableaux avec clés


152

J'utilise Twig et j'ai un tableau avec des clés comme celle-ci:

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

Et je voudrais obtenir la clé (1,2,3,8,9)et le contenu (alpha, bravo, charlie, delta, echo)dans une boucle pour obtenir toute la valeur de ce tableau.

Comment résoudre ce problème?


2
Avez-vous essayé de rechercher des boucles PHP? Utilisez la foreachboucle.
Josh

3
Ce n'est pas en PHP, c'est en Twig dans le fichier de modèle!
Guillaume

4
C'est suffisant. Avez-vous essayé de rechercher des boucles TWIG? twig.sensiolabs.org/doc/tags/for.html
Josh

Réponses:




15

Ce sont des opérations étendues (par exemple, trier, inverser) pour les tableaux unidimensionnels et bidimensionnels dans le framework Twig:

Baie 1D

Sans tri et inversion de clé

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

Tri des clés

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

Trier et inverser les clés

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

Tableaux 2D

Sans tri et inversion de clé

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

Tri de clé sur matrice externe

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

Tri de clé sur les tableaux externes et internes

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

Tri de clé sur le tableau externe et tri de clé et inversé sur le tableau intérieur

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

Tri et inversion de clés sur le tableau externe et tri de clés sur le tableau intérieur

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

Trier et inverser les clés sur les baies externe et interne

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

Je suppose que vous voulez faire le "Itération sur les clés et les valeurs"

Comme le dit le document ici , ajoutez simplement "| clés" dans la variable que vous voulez et cela se produira comme par magie.

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

Cela ne fait jamais de mal de chercher avant de demander :)


5
Vous n'avez pas montré d'exemple d'utilisation de "touches |" dans votre réponse.
Adambean

7
Je vous donne 10 parce que vous avez 308 points, mais vous répondez "Ça ne fait jamais de mal de chercher avant de demander" ça craint, alors je le retire
Braian Mellor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.