如何用树枝上的一个字符增加字符串变量的值?

How to increment the value of a string variable with one character on twig?

我是 twig 的新手,我正在尝试将存储在变量中的字母的值更改为下一个字母。我试过这样的事情:

{% set i = "a" %}
{% for answer in answers %}
    {{ "("~ i ~")"}} {{ answer.content }}
    {% set i = i + 1 %}
    <br>
{% endfor %}

预期的输出类似于:

(a) YES
(b) -1
(c) YES

我做了一些研究,但找不到直接的方法。可能有解决方法,但我想知道是否有直接的方法。

在此先感谢您的帮助。祝你有个美好的一天。

在 Twig 中没有任何内置方法可以做到这一点。

您可以创建自己的 Twig extension 并在其中处理此逻辑。

您应该使用 chr function to convert your $i variable (as an integer) into a letter. There is the famous mapping ACSI table 来帮助您实现 twig 扩展。

如果您只想使用字母字符,那么在您的申请中可能有超过 26 个问题时,您必须小心。否则,您将显示 [{ 字符。

如果有不清楚的地方,请不要犹豫:)

您不能“增加”twig 中的字母。

但是您可以生成字母 a-z 的列表并在循环中访问它们:

{% set letters = range('a','z') %} # generate an array of letters a-z
{% for answer in answers %}
    ({{ letters[loop.index0] }}) {{ answer.content }} # access letter by loop index 
    <br>
{% endfor %}

这适用于最多 26 个答案。


附录:也许是 XY-Problem。你也可以使用 css 并让浏览器来做,而不是自己在 twig 中做。

ol {
  list-style-type:lower-alpha;
}
<ol>
    <li>answer 1</li>
    <li>answer 2</li>
    <li>answer 3</li>
</ol>