Ramoscello per loop per array con chiavi


152

Uso Twig e ho un array con tasti come questo:

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

E vorrei ottenere la chiave (1,2,3,8,9)e il contenuto (alpha, bravo, charlie, delta, echo)in un ciclo per ottenere tutto il valore di questo array.

Come posso risolvere questo problema?


2
Hai provato a cercare loop PHP? Usa foreachloop.
Josh,

3
Non è in PHP, è in Twig nel file modello!
Guillaume,

4
Giusto. Hai provato a cercare loop TWIG? twig.sensiolabs.org/doc/tags/for.html
Josh

Risposte:




15

Queste sono operazioni estese (ad esempio, ordinamento, inversione) per array monodimensionali e bidimensionali in Twig framework:

1D Array

Senza ordinamento e inversione chiave

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

Ordinamento chiave

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

Chiave ordinamento e inversione

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

Matrici 2D

Senza ordinamento e inversione chiave

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

Ordinamento chiave su array esterno

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

Ordinamento chiave su array esterno e interno

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

Ordinamento chiave su array esterno e ordinamento e inversione chiave su array interno

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

Ordinamento e inversione dei tasti sull'array esterno e ordinamento dei tasti sull'array interno

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

Ordinamento e inversione dei tasti su matrice esterna e interna

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

Immagino che tu voglia fare "Iterazione su chiavi e valori"

Come dice il documento qui , basta aggiungere "| keys" nella variabile desiderata e accadrà magicamente.

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

Non fa mai male cercare prima di chiedere :)


5
Non hai mostrato un esempio dell'uso di "| chiavi" nella tua risposta.
Adambean,

7
Ti do 10 perché hai 308 punti, ma rispondi "Non fa mai male cercare prima di chiedere" fa schifo, quindi lo
tiro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.