Подсчитываю количество повторяющихся значений в массиве так:
foreach ($groups as $item)
{
if(!isset($final[$item]))
{
$final[$item] = 1;
}
else
{
$final[$item] = $final[$item] + 1;
}
}
Потом вспомнил, что есть array_count_values. Попробовал заменить код на нее:
$final = array_count_values($groups);
- и время выполнения скрипта выросло! Конечно, на время выполнения влияют и другие части скрипта, но это самое "узкое" место - массив с 200 000 ячеек.