1
Я пытаюсь создать хэш месяц дней (1..31) в веточке:Hash с номерами, как ключи
{% set days = {} %}
{% for i in 1..31 %}
{% set days = days|merge({(i) : i}) %}
{% endfor %}
Так что я ожидал, чтобы иметь что-то вроде:
1 -> 1
2 -> 2
...
31 -> 31
Вместо этого он создает хэш начинается с 0:
{% for key, option in days %}
{{ key }} -> {{option }}
<br />
{% endfor %}
0 -> 1
1 -> 2
...
30 -> 31
Я уверен, что есть более элегантный способ создать хэш я хочу. Также оценят некоторые объяснения неожиданного вывода. Thanks
Это работает, однако я должен передать этот хэш макросу, который я не могу изменить, а макрос имеет ключ и значение цикла – braz
Это происходит потому, что использование слияние (в Php array_merge - HTTP: //php.net/array_merge). Если вы используете цифровую клавишу, когда объединены ключи, первый ключ равен 0, второй 1 ... Не используйте числовые клавиши, такие как «_0», «_1» –
«код {% set days = {}%} {% for i in 1..31%} {% set key = '_' ~ (i)%} {% set days = days | merge ({(key): i})%} {% endfor%} ' –