如何用Smarty的foreach/section获取多维数组的索引名及SSL配置
解决Smarty遍历多维数组获取域名及SSL状态的问题
你的数组结构中,$packageData[$serviceid] 是一个以域名为键、配置数组为值的关联数组。当前代码的问题是没有捕获数组的键(域名),只遍历了值部分,所以无法获取域名,同时SSL状态的输出可以更严谨。
修正后的Smarty代码
{foreach from=$packageData[$serviceid] item=domainConfig 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="">{$domainConfig.ssl}</span> </div> </div> {/foreach}
关键说明
key=domain:通过foreach的key参数捕获当前遍历项的数组键,也就是你需要的域名(如example.com)。item=domainConfig:当前遍历项的值,即包含ssl配置的子数组,通过$domainConfig.ssl或$domainConfig['ssl']都可以访问SSL状态。- 如果
$packageData[$serviceid]可能为空,可以加上判断避免空循环:{if !empty($packageData[$serviceid])} {foreach from=$packageData[$serviceid] item=domainConfig key=domain} <!-- 循环内容 --> {/foreach} {else} <div>暂无域名配置数据</div> {/if}
内容的提问来源于stack exchange,提问作者Stas Karpinsky
相关产品推荐
相关产品推荐

