Php 在smarty中访问嵌套数组

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}

我正在尝试使用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}
    {$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代码了。