如何在Smarty中将值转换为整数

时间:2010-06-10 21:35:14

标签: php smarty

我在Smarty中引用数组中的索引时有点麻烦。我相信这是因为我用作索引的变量是一个字符串。如何在模板中将此字符串转换为整数?

感谢。

5 个答案:

答案 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-->