获取多维数组的"Index name",包括智能的foreach 或部分



我得到了域的这个数组($packageData(和它们的"配置":

Array (1)
263 => Array (55)
example.com => Array (1)
ssl => true
example2.com => Array (1)
ssl => false

我想访问里面的数组,并获取域名和可能的配置。所以用简单的话来说,我想用foreach或section来跑步,然后得到"example.com";并且如果SSL是"SSL";真/假";

所以我得到了这个聪明的代码:

{foreach from=$packageData[$serviceid] item=foo} 
<div class="" id="table-data">
<div id="table-data-entry">
<label style="font-size: 12px;margin-bottom: 0;" class="">אין מידע</label>
<span style="font-weight: 700;font-size: 15px;" class="">{$foo[ssl]}</span>
</div>                        
</div>
{/foreach}

$serviceid是本例中的263,它根据客户的UUID获取值。

我尝试了4-5种不同的解决方案,但找不到合适的解决方案来获得域名和true/false(如果是SSL(。

我想您还需要显示站点名称。foreach语法与PHP中的语法相同。

{foreach $packageData[$serviceid] as $siteName => $siteData} 
<div class="" id="table-data">
<div id="table-data-entry">
<label style="font-size: 12px;margin-bottom: 0;" class="">אין מידע</label>
<span style="font-weight: 700;font-size: 15px;" class="">{$siteName}</span>  
<span style="font-weight: 700;font-size: 15px;" class="">{$siteData['ssl'] ? 'true' : 'false'}</span>
</div>                        
</div>
{foreachelse}
<div class="" id="table-data">
<div id="table-data-entry">
No site data for this service.
</div>
</div>
{/foreach}

您是否查阅了Smarty关于foreach的文档?

除了为item指定var名称外,还可以为key指定var名称。

因此,以下是如何:

{foreach from=$packageData[$serviceid] item=foo key=domain}
<div class="" id="table-data">
<div id="table-data-entry">
<label style="font-size: 12px;margin-bottom: 0;" class="">{$domain}</label>
<span style="font-weight: 700;font-size: 15px;" class="">{$foo[ssl]}</span>
</div>
</div>
{/foreach}

此外,您还可以使用foreach声明的最新语法,如下所示:

{foreach $packageData[$serviceid] as $domain => $foo}
<div class="" id="table-data">
<div id="table-data-entry">
<label style="font-size: 12px;margin-bottom: 0;" class="">{$domain}</label>
<span style="font-weight: 700;font-size: 15px;" class="">{$foo[ssl]}</span>
</div>
</div>
{/foreach}

最新更新