我在Smarty中引用数组中的索引时有点麻烦。我相信这是因为我用作索引的变量是一个字符串。如何在模板中将此字符串转换为整数?
感谢。
答案 0 :(得分:8)
如果我正确理解了这个问题,{$ variable | intval}
答案 1 :(得分:2)
documentation显示了许多用法示例,尤其是在访问数组元素方面。
{$foo} <-- displaying a simple variable (non array/object)
{$foo[4]} <-- display the 5th element of a zero-indexed array
{$foo.bar} <-- display the "bar" key value of an array, similar to PHP $foo['bar']
{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar]
{$foo[bar]} <-- syntax only valid in a section loop, see {section}
答案 2 :(得分:0)
我相信这是因为 变量我用作索引是一个 串
我不同意这种看法:
$arr = array('a');
$i = '0';
echo $arr[$i]; // echos a
我认为问题出在其他地方。如果您还有其他问题,请添加一些代码。
答案 3 :(得分:0)
如果已将其分配给变量,例如$ var,则可以设置变量的类型,如下所示:
{$converted = settype ($var, 'integer')}
您不必使用$ converted值,但如果您不指定它,则bool将显示在您的页面中。
答案 4 :(得分:0)
因为我不允许发表评论(doh),我只会说@webbiedave代码在php中是正确的,但是在smarty中它不起作用。我花了太多时间试图弄清楚为什么我不从模板中的数组访问数据,我发现我有整数键的数组和我在smarty中用于键的参数是字符串,所以它不是按预期工作。我解决了这个问题:
<!--{debug says}
{$item}=> Array (2)
name=> "lalala"
id => "123"
...
{$arrays} => Array (7)
123=> Array (3)
other_part_i_care=> "bebebe"
...
-->
{$arrays[$item.id].other_part_i_care} <!--this doesnt return anything-->
{assign var='item_id' value=$item.id} <!--my guess here it gets interpreted as int -->
{$arrays[$item_id].other_part_i_care} <!--this return expected outcome-->