在WHMCS客户区域的Smarty输出中需要帮助

时间:2019-05-20 10:22:12

标签: php smarty whmcs

我想使用以下代码在WHMCS客户区域中获取域雕像,但其输出显示重复值,有什么帮助,所以我可以删除重复值。

{foreach key=num item=status from=$domains}
<li><a href="#"><span>{$status.statustext}</span></a></li>{/foreach}

输出是下面的东西,但是我不希望重复的值,例如Pending 2 time或更多,如果有更多的域正在等待。

  • 待处理
  • 待处理
  • 活动
  • 1 个答案:

    答案 0 :(得分:1)

    我建议使用array_column()为每个域提取状态文本。这将为您提供一个新数组,您可以使用array_unique()array_count_values()从中轻松删除任何重复的值。以下是完成此操作的几种方法:

    将array_column()与array_unique()合并以删除重复项。这可能是最常识的方法,将来可能有助于提高可读性。 $ domains数组被发送到array_column(),该数组提取statustext值。然后将结果发送到array_unique以删除所有重复的值。

    {foreach item=statustext from=$domains|@array_column:'statustext'|@array_unique}
    <li><a href="#"><span>{$statustext}</span></a></li>{/foreach}
    

    仅使用array_column()并将'statustext'设置为数组索引。该方法使用较少的函数调用,也许使其效率有所提高,但会降低一些可读性。可以在array_column()中指定第二个参数,以提取另一列作为新创建的数组的索引。重复的数组索引被合并/覆盖,因此设置索引以使其值匹配将防止存储重复项。

    {foreach item=statustext from=$domains|@array_column:'statustext':'statustext'}
    <li><a href="#"><span>{$statustext}</span></a></li>{/foreach}
    

    将array_column()与array_count_values()合并以删除重复项。由于要汇总来自多个域的数据,因此对每种状态进行计数可能会很有用。将array_count_values()应用于array_column()的结果将删除重复的值,同时还为您提供每个值的计数。

    {foreach key=statustext item=count from=$domains|@array_column:'statustext'|@array_count_values}
    <li><a href="#"><span>{$statustext}: {$count}</span></a></li>{/foreach}