Smarty:正确的数组丢失的键



我通过PHP调用API,返回一个多维数组[$myArray]。

我想传递这个数组在我的Smarty模板中使用,但由于某种原因,数组返回没有第一个维度键。

当我print_r在$myArray在PHP我得到:

Array ( 
   [success] => 1 
   [errors] => 0 
   [data] => Array ( 
       [0] => Array ( 
                [email] => myemail@email.com
                [id] => hhd77sjr
                [timestamp] => 2011-08-10 16:31:29 
       ) 
   ) 
)

我将这个数组赋值为:$smarty->assign('my_array',$myArray);

然后当我通过{$my_array|print_r}访问Smarty模板中的my_array时,我得到:

1
0
Array ( 
    [0] => Array ( 
       [email] => myemail@email.com
       [id] => hhd77sjr
       [timestamp] => 2011-08-10 16:31:29
    )
)

我的[success], [errors]和[data]值的键发生了什么?我只看到了价值。我怎么能访问这些值通过类似:{$my_array.success} ?

谢谢你的帮助!

如果你在google上搜索"smarty array",你会发现这个:

<ul>
{foreach from=$myArray key=k item=v}
   <li>{$k}: {$v}</li>
{/foreach}
</ul>
http://www.smarty.net/docsv2/en/language.function.foreach

不查看源代码,我猜它与Smarty如何显示print_r()的结果有关。默认情况下,print_r尝试直接输出,但是查看PHP文档:

如果您想捕获print_r()的输出,请使用返回参数。当此参数设置为TRUE时,print_r()将返回信息而不是打印信息。

来源

你当然应该能够正常访问所有的值,即{$my_array.success}

如果您想再次尝试print_r,请尝试:{$my_array|print_r:true}(将返回参数设置为true)。

相关内容

  • 没有找到相关文章