Я раньше пользовался подобной функцией. Не знаю, насколько это плохо:
class Helper
{
/**
* Выбирает слово с правильными окончанием после числительного.
*
* @param int $number число
* @param array $words варианты склонений ['яблоко', 'яблока', 'яблок']
* @return string
*/
public static function plural(int $number, array $words): string
{
return $words[($number % 100 > 4 && $number % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][min($number % 10, 5)]];
}
}
// echo "Загружено $count " . Helper::plural($count, ['запись', 'записи', 'записей'];