Php 在smarty中访问嵌套数组
我正在尝试使用smarty访问html代码中的嵌套数组。例如,我有一个如下的数组:array(customer)[name,age,id[firstname,lastname,birthdate]]。我一直在尝试这样的事情:Php 在smarty中访问嵌套数组,php,smarty,Php,Smarty,我正在尝试使用smarty访问html代码中的嵌套数组。例如,我有一个如下的数组:array(customer)[name,age,id[firstname,lastname,birthdate]]。我一直在尝试这样的事情: {foreach from=$customer item=foo} Customer id: {$foo.id} {/foreach} 但这不会将任何值打印到页面。 但是,使用这种语法 {foreach from $customer item=foo}
{foreach from=$customer item=foo}
Customer id: {$foo.id}
{/foreach}
但这不会将任何值打印到页面。
但是,使用这种语法
{foreach from $customer item=foo}
{$foo.id} // or {$foo.id.0}
{/foreach}
它打印出:数组
如何使用smarty访问嵌套数组的值?尝试以下操作:
{foreach from=$customer item=foo}
Customer name: {$foo.id.firstname} {$foo.id.lastname}
{/foreach}
Smarty
将其编译为与以下内容等效的内容:
foreach ($customer as $foo) {
echo('Customer name: '.$foo['id']['firstname'].' '.$foo['id']['laststname']);
}
您的$foo.id是一个实际数组,因此您也应该对其进行迭代
{foreach from=$customer item=foo}
Contained values: {$foo.id.firstname} {$foo.id.lastname} {$foo.id.birthdate}
{/foreach}
当我尝试这样做时,它不会打印出任何值,我是否必须在嵌套数组中包含所有值,例如,如果我只需要名字?或者我在数组中有问题吗?我试图使用您提供的稀少信息进行猜测。显示数组的
print\u r()
,以及如何将其分配给Smarty
。我将PHP等效于Smarty代码。它有用吗?可能阵列的结构不同。使用PHP使其工作,然后使用我的示例编写等效的Smarty文本。阅读Smarty about and Array([0]=>Array([customer]=>[Age]=>18[id]=>Array([0]=>Array([firstname]=>bob[lastname]=>test)))您的结构不需要嵌套级别,但这是您的设计,也许您有这样做的理由。显示客户姓名所需的PHP
代码似乎是foreach($customer as$item)echo($item['id'][0]['firstname']);
等等。您现在应该能够找到Smarty代码了。