问题非常严重.
我有一个带整数键的数组,参数是字符串.我想通过使用该参数获取该数组的元素.
如何进入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)
如果你正在对一个字符串进行数学运算,那么无论如何它都会自动转换为整数!
您可以使用变量作为键来访问数组的值,如下所示: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).