Артём Мáлков

Простое склонение числительных на PHP/JavaScript

11 окт0 комм

Рад поделиться с читателями нашего сайта двумя полезными функциями (по одной на каждый из описанных в заголовке языков программирования). Все дело в том, что на многих сайтах я вижу картину, похожую на эту: 5 комментария, в вашей корзине 31 яблок и т.д. Все это с точки зрения орфографии является неверным представлением информации, и если вы все же ведете в какой-то степени серьезный проект – этому нужно уделить внимание.

Для этого я покажу вам две, по сути, идентичные функции для PHP и JavaScript, которые позволят правильно склонять слова в зависимости от сопутствующих им числовых значений.

Простое склонение числительных на PHP

Чтобы не быть многословным, функция для PHP выглядит так:

function declination($number, $titles) {
	
	$cases = array(2, 0, 1, 1, 1, 2);
	
	return $number." ".$titles[($number%100>4 && $number%100<20) ? 2 : $cases[min($number%10, 5)]];
	
}

Ее рекомендуется вставить в верхнюю часть вашего файла PHP. А это ее пример использования:

$title = declination(100, array("человек", "человека", "человек"));

echo $title;

В коде выше 100 – это наше число (можно указать вручную или заменить переменной), а array("человек", "человека", "человек") – массив со склоняемыми словами.

Теперь поговорим о логике составления этих массивов. Нам необходимо подставить слова по такому принципу: на первом месте – для единицы, на втором – для пары, на третьем – для пяти.

Простое склонение числительный на JavaScript

В JavaScript функция будет похожей:

function declination(number, titles) {

	cases = [2, 0, 1, 1, 1, 2];
	
	return number+" "+titles[(number%100>4 && number%100<20) ? 2 : cases[(number%10<5) ? number%10 : 5]];
	
}

Функцию надо вставлять выше ее вызова. Пример ее использования:

var title = declination(100, ["человек", "человека", "человек"]);

alert(title);

100 здесь все то же наше число, а ["человек", "человека", "человек"] – массив со склонениями, который вы составляете по тому же самому принципу, что и в примере с PHP.

Рекомендуем к просмотру
Проверяем наличие значения в многомерном массиве на PHP
Модули и скрипты
Как прибавить или вычесть процент от числа на PHP/JavaScript
Статьи и советы
Сколько дней «живет» сайт на JavaScript/PHP
Модули и скрипты
0
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник вебмастера