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.