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.