2010-06-10 28 views
2

在Smarty中,在引用数组中的索引时遇到了一些问题。我相信这是因为我用作索引的变量是一个字符串。我怎样才能将这个字符串作为模板中的整数?如何在Smarty中将整数值转换成Smarty

谢谢。

+1

......认真吗?在Smarty完成了将PHP的演示文稿**之后的所有工作后,您现在想要将逻辑**转储为**它?! – 2010-06-10 21:36:30

+4

我正在寻找答案,而不是一个巨魔。谢谢。 – lafoaug 2010-06-10 21:38:37

+0

你可以展示一些示例代码 - 它有点难以完全理解你想要做什么 – thetaiko 2010-06-10 21:39:57

回答

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} 
0

我认为,这是因为 可变我使用的指标是 串

我不这种信念同意:

$arr = array('a'); 
$i = '0'; 
echo $arr[$i]; // echos a 

我觉得问题在于别处。如果你还有其他问题,你应该包括一些你的代码。

0

如果它已经分配给一个变量,说是$ var,你可以设置一个变量的这样类型:

{$converted = settype ($var, 'integer')} 

您不必使用$转换值,但如果你不分配它,布尔将显示在你的页面中。

8

如果我理解正确的问题,{$变量| INTVAL}

+0

yepp,就是这样。既然你可以使用任何PHP函数,你也可以使用intval。 (虽然我必须承认我首先想到如何在smarty中使用(int)$ s) – 2014-12-03 15:51:16

+0

@ZsoltSzilagy但是这比'(int)$ var'更好吗?如果是这样,为什么? – 2015-09-01 20:29:06

0

,因为我不允许评论(DOH),我只想说,@webbiedave代码是在PHP正确,但智者它不工作。我刚刚花了太多的时间试图弄清楚为什么我没有从模板中的数组访问数据,我发现我有整数键的数组,我在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-->