Я рекомендую извлечь текст статуса для каждого домена, используя 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 (), чтобы удалить дубликаты. Itможет быть полезно иметь счетчик каждого состояния, так как вы агрегируете данные из нескольких доменов.Применение 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}