Гілочка для петлі для масивів з ключами


152

Я використовую Twig і маю масив з такими ключами:

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

І я хотів би отримати ключ (1,2,3,8,9)і вміст (alpha, bravo, charlie, delta, echo)у циклі, щоб отримати все значення цього масиву.

Як вирішити цю проблему?


1
Ви намагалися шукати петлі PHP? Використовуйте foreachпетлю.
Джош

3
Це не в PHP, це у Twig у файлі шаблонів!
Гійом

3
Досить справедливо. Ви намагалися шукати петлі TWIG? twig.sensiolabs.org/doc/tags/for.html
Джош

Відповіді:




15

Це розширені операції (наприклад, сортування, зворотний зв'язок) для одновимірних та двовимірних масивів у рамках Twig:

1D масив

Без сортування ключів та реверсу

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

Сортування клавіш

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

Сортування клавіш і зворотний бік

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

2D масиви

Без сортування ключів та реверсу

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

Сортування клавіш на зовнішньому масиві

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

Сортування клавіш як на зовнішніх, так і на внутрішніх масивах

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

Сортування клавіш на зовнішньому масиві та сортування клавіш та повернення до внутрішнього масиву

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

Сортування клавіш та повернення до зовнішнього масиву та сортування клавіш у внутрішній масив

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

Сортування та повернення клавіш на зовнішньому та внутрішньому масиві

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

Я думаю, ви хочете зробити "Ітерація над ключами і значеннями"

Як говорить тут документ , просто додайте «| ключі» до потрібної змінної, і це магічно станеться.

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

Ніколи не боляче шукати, перш ніж запитати :)


4
Ви не показали приклад використання "| клавіш" у своїй відповіді.
Адамбей

6
Я даю вам 10, тому що у вас є 308 балів, але ви відповідаєте "Ніколи не боляче шукати, перш ніж запитати", смокче, тому я
виймаю
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.