Ответ 1
Я нашел ответ:
{% for key,value in array_path %}
Key : {{ key }}
Value : {{ value }}
{% endfor %}
Я использую 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)
в цикле, чтобы получить все значения этого массива.
Как мне решить эту проблему?
Я нашел ответ:
{% for key,value in array_path %}
Key : {{ key }}
Value : {{ value }}
{% endfor %}
Вот этот пример на странице SensioLab в теге for
:
<h1>Members</h1>
<ul>
{% for key, user in users %}
<li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
</ul>
http://twig.sensiolabs.org/doc/tags/for.html#iterating-over-keys
Это также расширенные параметры (например, сортировка, реверс) для одномерных и двумерных массивов в Twig:
{% for key, value in 1D_array %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
{% for key, value in 1D_array|keys|sort %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
{% for key, value in 1D_array|keys|sort|reverse %}
<div>{{ key }}</div>
<div>{{ value }}</div>
{% endfor %}
{% for key1, value1 in 2D_array %}
{% for key2, value2 in 2D_array[key1] %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort %}
{% for key2, value2 in 2D_array[key1] %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort %}
{% for key2, value2 in 2D_array[key1]|keys|sort %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort %}
{% for key2, value2 in 2D_array[key1]|keys|sort|reverse %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort|reverse %}
{% for key2, value2 in 2D_array[key1]|keys|sort %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
{% for key1, value1 in 2D_array|keys|sort|reverse %}
{% for key2, value2 in 2D_array[key1]|keys|sort|reverse %}
<div>{{ key2 }}</div>
<div>{{ value2 }}</div>
{% endfor %}
{% endfor %}
Я думаю, вы хотите сделать "Итерацию над ключами и значениями"
Как говорится в doc здесь, просто добавьте "| ключи" в нужную вам перемену и это будет волшебным образом.
{% for key, user in users %}
<li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}
Никогда не больно искать, прежде чем спрашивать:)