Я пытаюсь объединить хэши с Twig для вывода JSON.
Моя проблема в том, что некоторые из моих ключей используют строки чисел, а веточка преобразует их в целые числа.
Мой код:
{% set rows = {} %}
{% for key, val in row %}
{% set rows = rows|merge({ (key) : val }) %}
{% endfor %}
{{ { 'report': { 'metric': metric, 'rows': rows, 'tot': tot, 'min': min, 'max': max } }|json_encode|raw }}
Какие выходы
{"report":{"metric":"sessions","rows":["5","4","4","3","7","4","4"],"tot":"31","min":"0","max":"7"}}
Я также попытался заменить мои ключи на number_format, но, поскольку я удаляю все нечисловые символы, вывод такой же.
{% set rows = {} %}
{% for key, val in row %}
{% set rows = rows|merge({ (key)|number_format(0,'','') : val }) %}
{% endfor %}
{{ { 'report': { 'metric': metric, 'rows': rows, 'tot': tot, 'min': min, 'max': max } }|json_encode|raw }}
Ожидаемый результат выглядит следующим образом:
{"report":{"metric":"sessions","rows":{"20180423":"5","20180424":"4","20180425":"4","20180426":"3","20180427":"7","20180428":"4","20180429":"4"},"tot":"31","min":"0","max":"7"}}
Можно ли как-нибудь помешать Твигу изменить мои ключи на целые?
Нашел этот пост, но он не работает для меня, так как мои ключи - это цепочки цифр.
значение ключа заменяется на «ключ» при использовании merge () в ветке