Не знаю, можно ли как-то оптимизировать данную функцию, но использую ее, писал сам Функция выводит слово "просмотр" в нужном падеже, аналогично можно сделать для других слов function goodName ($type, $value) { // Выводит существительные в нужном склонении if (strlen($value) > 2) { $value = substr($value, -2); if ($type == 'views') { if (preg_match('/^[2-4]$/', $value) OR preg_match('/^[^1][2-4]$/', $value)) { return 'просмотра'; } elseif (preg_match('/^1$/', $value) OR preg_match('/^[^1]1$/', $value)) { return 'просмотр'; } else { return 'просмотров'; } } } else { if ($type == 'views') { if (preg_match('/^[2-4]$/', $value) OR preg_match('/^[^1][2-4]$/', $value)) { return 'просмотра'; } elseif (preg_match('/^1$/', $value) OR preg_match('/^[^1]1$/', $value)) { return 'просмотр'; } else { return 'просмотров'; } } } } Код function goodName ($type, $value) { // Выводит существительные в нужном склонении if (strlen($value) > 2) { $value = substr($value, -2); if ($type == 'views') { if (preg_match('/^[2-4]$/', $value) OR preg_match('/^[^1][2-4]$/', $value)) { return 'просмотра'; } elseif (preg_match('/^1$/', $value) OR preg_match('/^[^1]1$/', $value)) { return 'просмотр'; } else { return 'просмотров'; } } } else { if ($type == 'views') { if (preg_match('/^[2-4]$/', $value) OR preg_match('/^[^1][2-4]$/', $value)) { return 'просмотра'; } elseif (preg_match('/^1$/', $value) OR preg_match('/^[^1]1$/', $value)) { return 'просмотр'; } else { return 'просмотров'; } } } } Использование: echo goodName($value); Код echo goodName($value);