Twig for loop para matrices con claves

Resuelto Aleksandar Zivanovic asked hace 54 años • 0 respuestas

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?

Aleksandar Zivanovic avatar Jan 01 '70 08:01 Aleksandar Zivanovic
Aceptado

Encontré la respuesta:

{% for key,value in array_path %}
    Key : {{ key }}
    Value : {{ value }}
{% endfor %}
Guillaume avatar Apr 24 '2012 14:04 Guillaume

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 %}
Emma avatar May 02 '2019 04:05 Emma

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 :)

imcoddy avatar Oct 29 '2013 04:10 imcoddy