Anahtarlı diziler için döngü için dal


152

Twig kullanıyorum ve bunun gibi tuşlarla bir dizi var:

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

Ve anahtarı almak istiyorum (1,2,3,8,9)(alpha, bravo, charlie, delta, echo) bu dizinin tüm değerini almak için bir döngüde ve içeriği .

Bu sorunu nasıl çözerim?


1
PHP döngülerini aramayı denediniz mi? foreachDöngü kullanın .
— Josh

3
PHP'de değil, şablon dosyasında Twig'de!
— Guillaume

3
Yeterince adil. TWIG döngüleri aramayı denediniz mi? twig.sensiolabs.org/doc/tags/for.html
— Josh

Yanıtlar:




15

Bunlar, Twig çerçevesindeki bir boyutlu ve iki boyutlu diziler için genişletilmiş işlemlerdir (örneğin, sıralama, tersine çevirme):

1D Dizisi

Anahtar Sıralama ve Tersine Olmadan

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

Anahtar Sıralama

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

Anahtar Sıralama ve Ters Çevirme

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

2D Diziler

Anahtar Sıralama ve Tersine Olmadan

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

Dış Dizide Anahtar Sıralama

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

Hem Dış hem İç Dizilerde Anahtar Sıralama

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

Dış Dizide Anahtar Sıralama & İç Dizide Anahtar Sıralama ve Geri

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

Dış Dizide Anahtar Sıralama ve Ters Çevirme & İç Dizide Anahtar Sıralama

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

Hem Dış hem İç Dizide Anahtar Sıralama ve Ters Çevirme

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

Sanırım "Anahtarlar ve Değerler Üzerinde Tekrarlama" yapmak istiyorsunuz

Buradaki dokümanın dediği gibi, istediğiniz değişkene "| anahtarları" ekleyin ve sihirli bir şekilde gerçekleşir.

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

Sormadan önce aramak asla acıtmaz :)


4
Cevabınızda "| anahtarları" kullanma örneği göstermediniz.
— Adambean

6
Sana 10 tane veriyorum çünkü 308 puanın var, ama "Bu sormadan önce aramak asla acıyor" diye cevap veriyorsun, bu yüzden çıkarıyorum
— Braian Mellor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.