我通过PHP调用API,返回一个多维数组[ $ myArray ]。
我想传递这个数组以供我的Smarty模板使用,但由于某种原因,数组在没有第一个维度键的情况下返回。
当我在PHP中的 $ myArray 上print_r时,我得到:
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
)
)
我的键[成功],[错误]和[数据]值发生了什么变化?我只看到了价值观。如何通过以下内容访问这些值:{$my_array.success}
?
感谢您的帮助!!
答案 0 :(得分:0)
如果你在google上搜索“smarty array”,你可以找到:
<ul>
{foreach from=$myArray key=k item=v}
<li>{$k}: {$v}</li>
{/foreach}
</ul>
答案 1 :(得分:0)
不考虑来源,我猜测它与Smarty如何显示print_r()
的结果有关。默认情况下,print_r尝试直接输出,但查看PHP文档:
如果要捕获print_r()的输出,请使用return参数。当此参数设置为TRUE时,print_r()将返回信息而不是打印信息。
您当然应该能够正常访问所有值,即{$my_array.success}
。
如果您想再次尝试print_r
,请尝试以下操作:{$my_array|print_r:true}
(将返回参数设置为true)。