我通过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)。