树枝模板中的Intval

use*_*675 17 symfony twig

问题非常严重.

我有一个带整数键的数组,参数是字符串.我想通过使用该参数获取该数组的元素.

如何进入Twig intval - (int)"32"{{ variable }}哪里variable == (string) "32";

ToB*_*oBe 17

树枝上有过滤器.其中之一就是:

http://twig.sensiolabs.org/doc/filters/number_format.html

{{ variable|number_format }}
Run Code Online (Sandbox Code Playgroud)

如果你正在对一个字符串进行数学运算,那么无论如何它都会自动转换为整数!

  • 我不相信这是正确的.我只是测试了它,"number_format"过滤器不会将字符串转换为int. (6认同)
  • 如果我错了,请纠正我,但在这里你正在反转OP的问题.`{{variable | number_format}}`将int转换为字符串,是的,解决问题,但反过来...... (5认同)
  • 它部分工作。它将字符串转换为 _numeric_ 字符串(但从技术上讲它仍然是字符串)。 (2认同)

mar*_*ias 6

您可以使用变量作为键来访问数组的值,如下所示:myArray[myKey].数组键是整数(例如32)还是相应的字符串("32"),或者myKey是整数还是字符串无关紧要.所有这些组合都应该有效(参见TwigFiddle):

{% set myArray = {
    1:   'first',
    '2': 'second',
} %}

{% set keyOneInt = 1 %}
{% set keyOneStr = '1' %}
{% set keyTwoInt = 2 %}
{% set keyTwoStr = '2' %}

{# These all print 'first' #}
{{ myArray.1 }}
{{ myArray[1] }}
{{ myArray['1'] }}
{{ myArray[keyOneInt] }}
{{ myArray[keyOneStr] }}

{# These all print 'second' #}
{{ myArray.2 }}
{{ myArray[2] }}
{{ myArray['2'] }}
{{ myArray[keyTwoInt] }}
{{ myArray[keyTwoStr] }}
Run Code Online (Sandbox Code Playgroud)

在上面代码的第三行,字符串键'2'实际上被转换为整数2,就像PHP的数组文档状态:

包含有效十进制整数的字符串,除非数字前面带有+号,否则将转换为整数类型.例如,键 "8"实际上将存储在8下.另一方面," 08"不会被强制转换,因为它不是有效的十进制整数.

如果由于某种原因需要整数,可以通过对其执行数学运算将字符串转换为int - 例如variable * 1(= "32" * 1)或variable + 0(= "32" + 0).