Twig for loop para matrices con claves
Yo uso Twig y tengo una matriz con claves como esta:
array[1] = "alpha"
array[2] = "bravo"
array[3] = "charlie"
array[8] = "delta"
array[9] = "echo"
Y me gustaría obtener la clave (1,2,3,8,9)
y el contenido (alpha, bravo, charlie, delta, echo)
en un bucle para obtener todos los valores de esta matriz.
¿Cómo soluciono este problema?
Aceptado
Encontré la respuesta:
{% for key,value in array_path %}
Key : {{ key }}
Value : {{ value }}
{% endfor %}
Estas son operaciones extendidas (por ejemplo, ordenar, invertir) para matrices unidimensionales y bidimensionales en el marco Twig:
Matriz 1D
Sin clasificación de claves ni reversa
{% for key, value in array_one_dimension %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
Ordenación de claves
{% for key, value in array_one_dimension|keys|sort %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
Ordenación e inversión de claves
{% for key, value in array_one_dimension|keys|sort|reverse %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
Matrices 2D
Sin clasificación de claves ni reversa
{% 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 %}
Ordenación de claves en matriz exterior
{% 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 %}
Clasificación de claves tanto en matrices externas como internas
{% 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 %}
Clasificación de claves en matriz exterior y clasificación de claves e inversión en matriz interior
{% 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 %}
Clasificación de claves e inversión en matriz exterior y clasificación de claves en matriz interior
{% 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 %}
Clasificación e inversión de claves tanto en la matriz exterior como en la interior
{% 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 %}
Supongo que quieres hacer "Iteración sobre claves y valores".
Como dice el documento aquí , simplemente agregue "|keys" en la variable que desee y sucederá mágicamente.
{% for key, user in users %}
<li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
Nunca está de más buscar antes de preguntar :)