在smarty模板中创建一个数组?

sac*_*ant 21 php smarty

我需要在smarty模板中从其他一维数组创建一个新数组.那么,在模板文件中创建数组的最佳可能性是什么.

谢谢,萨钦

rod*_*ehm 29

Smarty3允许你{$var = ['foo' => 'bar', 'sub' => [1, 2, 3]]}{$var.foo = 'other'}

如果这些选项不够,请编写一个插件函数.

  • 我已经尝试过此建议,并且有效。Smarty文档中似乎没有记录此功能,这对我来说更有价值。 (2认同)

Der*_*rVO 11

在过去,我使用了两种方法 - 一种是邪恶的方法 - 一种是在一种方法中快速分配一个数组:

{* Am I evil? *}
{php}
    $array = array("cat", "dog", "rabbit");
    $this->assign("myArray", $array);
{/php}

{* Am I dirty? *}
{assign var='myArray' value=','|explode:"cat,dog,rabbit"}
Run Code Online (Sandbox Code Playgroud)

两者都会导致您的数组在模板中可用,以构建一个简单的循环.无论如何,我总是以这种方式改变我的代码,所以我根本不需要这些东西.


Eug*_*nko 7

它实际上非常简单:

{assign 'myArray' ['cat', 'dog', 'rabbit']}
Run Code Online (Sandbox Code Playgroud)


Jer*_*emy 1

我建议不要这样做,但这个插件允许这样做:http://smarty.incutio.com/?page=set