Smarty concat并用作变量

时间:2012-11-03 10:09:54

标签: php smarty concatenation

在PHP文件中,我正在运行一个循环,在其中我正在为smarty分配一个变量。

PHP代码:

foreach($pindata as $Idx => $Val)
{
    $pinId = $Val['id'];
    $sql = mysql_query("select count(userID) as users from pinrest_supporters where pin_id = $pinId;");
    $contributorsSql = mysql_fetch_assoc($sql);
    $contributors = $contributorsSql['users'];
    $smarty->assign("contributors$pinId", $contributors);

}

因此,smarty中指定的值为contributors1038contributors1039等等。

现在我的问题是我想动态地在smarty中使用这些分配的变量。

在smarty模板文件中,如果我写{$contributors1038},那么我得到正确的输出为9.但我想动态地使用它。 1038是ID,我在我的模板中有。如果我尝试连接两个不同的变量并期望结果,我就失败了:P

我试过了:

{assign var='contri' value="contributors"|cat:$results[res].id}

但上面的变量{$contri}给出的结果为 contributors1038

我想通过连接两个不同的变量来创建一个新变量,但这会使它成为字符串。那么有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果你唯一的目标是输出数据,你可以这样试试

{$contributors}{$results[res].id}

答案 1 :(得分:0)

好的,我已经筋疲力尽地尝试了不同的解决方案,所以最后我这样做是为了实现我的目标。

而不是代码 PHP

$contributors = $contributorsSql['users'];
$smarty->assign("contributors$pinId", $contributors);

我把smarty变量变成了一个数组

PHP

$contributors[$pinId] = $contributorsSql['users'];
$smarty->assign("contributors", $contributors);

而且我很聪明地称之为

SMARTY:

{$contributed[$results[res].id]}