Php 模板工具包foreach to Smarty

Php 模板工具包foreach to Smarty,php,smarty,template-toolkit,Php,Smarty,Template Toolkit,我在模板工具箱中有一个foreach循环,我正在将其转换为Smarty,但我不确定要将其更改为什么 [% FOREACH ps IN pack_stats %] <tr> [% FOREACH key IN [ id, domain, username, password, plan, price, renew, status ] %] <td>[% ps.$key %]</td> [% END %] </tr> [% EN

我在模板工具箱中有一个foreach循环,我正在将其转换为Smarty,但我不确定要将其更改为什么

[% FOREACH ps IN pack_stats %]
<tr>
    [% FOREACH key IN [ id, domain, username, password, plan, price, renew, status ] %]
    <td>[% ps.$key %]</td>
    [% END %]
</tr>
[% END %]
[%FOREACH ps IN pack_stats%]
[%FOREACH密钥位于[id、域、用户名、密码、计划、价格、续订、状态]]]
[%ps.$key%]
[%END%]
[%END%]

我知道在smarty中,foreach循环更改为
{foreach from=$pack_stats item=ps}{/foreach}
,但是中间的文本我不确定如何更改它,以循环通过传递给ps变量的每个键。

我不知道是否有更干净的方法来执行此操作,但您可以尝试的一件事是为变量分配一个键数组,然后对其执行标准的
{foreach}

{assign var='keys' value=','|explode:"id,domain,username,password,..."} 
{foreach from=$pack_stats item=ps}
  {foreach from=$keys item=key}
    <td>{$ps.$key|escaped}</td>
  {/foreach}
{/foreach}
{assign var='keys'value=','|分解:“id,域,用户名,密码,…”}
{foreach from=$pack_stats item=ps}
{foreach from=$keys item=key}
{$ps.$key |转义}
{/foreach}
{/foreach}
{$keys=[“id”、“域”、“用户名”、“密码”、“计划”、“价格”、“续订”、“状态”]}
{foreach$pack_stats as$ps}
{foreach$keys作为$k}
{$ps.$k|逃脱}
{/foreach}
{/foreach}
(Smarty3语法)

{$ps.key}
应该是
{$ps.$key}
{$keys = ["id", "domain", "username", "password", "plan", "price", "renew", "status"]}
{foreach $pack_stats as $ps}
  <tr>
    {foreach $keys as $k}
      <td>{$ps.$k|escape}</td>
    {/foreach}
  </tr>
{/foreach}