在 WHMCS 客户区的 Smarty 输出方面需要帮助

Need help in Smarty output in WHMCS clientarea

我想使用下面的代码在 WHMCS 客户区获取域状态,但它的输出显示重复值,有什么帮助可以让我删除重复值。

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

输出如下,但如果有更多域待处理,我不希望出现重复值,例如 Pending 2 次或更多。

  • 待定
  • 待定
  • 有效
  • 我建议使用 array_column(). This would give you a new array from which you can easily remove any duplicate values using array_unique() or array_count_values() 提取每个域的状态文本。以下是实现此目的的几种方法:

    结合 array_column() 和 array_unique() 来删除重复项。 这可能是最常识性的方法,可以帮助提高文章的可读性未来。 $domains 数组被发送到 array_column() 以提取状态文本值。然后将结果发送到 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() 中指定第二个参数以提取另一列作为新创建数组的索引。重复的数组索引是 merged/overwritten 因此设置索引以匹配它的值将防止重复项被存储。

    {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}