如何在Smarty中打印数组?

6

我有一个数组:

 $team_details = Array ( [id] => 1 [name] => doge_finder [total_rewards] => 52.00524500 [desciption] => team is only of doge miners [created_by] => 20 );

/* assigning to a smarty template */
$smarty->assign("team_record", $team_details);          
$smarty->display($tpl);

在模板文件中:
{foreach from= $team_record key=team item=trecord}
{$trecord[$key].name}
{/foreach}

在结果输出中应该是"doge_finder",但我得到的是数组中每个记录的第一个初始字符,即 "1 d 5 t 2"。
如何解决这个问题?

这不是 {$team_record.name} 足够了吗? - ɹɐqʞɐ zoɹǝɟ
2个回答

10

我们可以使用{$team_record|print_r}在smarty文件中显示整个数组。

输出:

 Array
 (
    [id] => 1                  
    [name] => doge_finder
    [total_rewards] => 52.00524500
    [desciption] => team is only of doge miners
    [created_by] => 20
)

我们可以使用以下代码在Smarty文件中对数组进行迭代

{foreach from=$team_record key=arrayIndex item=trecord}
   {$arrayIndex}: {$trecord}
   <br>
{/foreach}

输出:

       id: 1

       name: doge_finder

       total_rewards: 52.00524500

       desciption: team is only of doge miners

       created_by: 20 

5

如果你只想打印一个关联数组,那么你不必使用{foreach}。只需使用$array.key格式即可。

在这种情况下,你应该通过使用以下方式来打印名称:

{$team_record.name}

如果您有多个关联数组,可以使用以下代码:
{foreach from=$team_record key=team item=record}
    {$record.name}
{/foreach}

谢谢,它工作得很好。因为我有一个关联数组,所以我写了{foreach}来打印该数组。 - codeBYmahesh
如果有多维数组,例如:Array ( [0] => Array ( [id] => 1 [name] => doge_finder [total_rewards] => 52.00524500 [desciption] => team is only of doge miners [created_by] => 20 [created_date] => ) [1] => Array ( [id] => 2 [name] => Late Miner [total_rewards] => 45.25462000 [desciption] => Team player are late coin miners [created_by] => 20 [created_date] => ) ) 请问如何仅打印该数组中的名称字段? - codeBYmahesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接