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?
J'ai trouvé la réponse:
{% for key,value in array_path %}
Key : {{ key }}
Value : {{ value }}
{% endfor %}
Il y a cet exemple dans la page SensioLab sur la balise for
:
<h1>Members</h1>
<ul>
{% for key, user in users %}
<li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
</ul>
http://twig.sensiolabs.org/doc/tags/for.html#iterating-over-keys
Ce sont également des options étendues pour les tableaux 1D et 2D dans Twig:
{% for key, value in 1D_array %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
{% for key1, value1 in 2D_array %}
{% for key2, value2 in 2D_array[key1] %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array %}
{% for key2, value2 in 2D_array[key1] %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort %}
{% for key2, value2 in 2D_array[key1]|keys|sort %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort|reverse %}
{% for key2, value2 in 2D_array[key1]|keys|sort|reverse %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
Je suppose que vous voulez faire le "Itération sur les clés et les valeurs"
Comme le dit la documentation ici , ajoutez simplement "| clés" dans la variable souhaitée et cela se produira comme par magie.
{% for key, user in users %}
<li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
Il n'est jamais mauvais de chercher avant de demander :)