@anton99zel
29а класс средней школы №7

Как сделать склонение числительных на php?

<?if ($arResult["COUNT_FITTING"] > 0){?>
У Вас <?=$arResult["COUNT_FITTING"];?> моделей в корзине
<?}?>


как сделать склонение:
1 модель
2 модели
5 моделей
0 моделей
  • Вопрос задан
  • 5856 просмотров
Решения вопроса 2
@ynblpb_spb
дятел php
function RusEnding($n, $n1, $n2, $n5) {
		if($n >= 11 and $n <= 19) return $n5;
		$n = $n % 10;
		if($n == 1) return $n1;
		if($n >= 2 and $n <= 4) return $n2;
		return $n5;
	}
echo RusEnding(40, "комментарий", "комментария", "комментариев");
Ответ написан
Комментировать
gobananas
@gobananas
finishhim.ru
Код не мой, один из вариантов с просторов сети:
// код
function chti($string, $ch1, $ch2, $ch3){
$ff=Array('0','1','2','3','4','5','6','7','8','9');
if(substr($string,-2, 1)==1 AND strlen($string)>1) $ry=array("0 $ch3","1 $ch3","2 $ch3","3 $ch3" ,"4 $ch3","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
else $ry=array("0 $ch3","1 $ch1","2 $ch2","3 $ch2","4 $ch2","5 $ch3"," 6 $ch3","7 $ch3","8 $ch3"," 9 $ch3");
$string1=substr($string,0,-1).str_replace($ff, $ry, substr($string,-1,1));
return $string1;
}
 
// использование
echo chti(21,'минута','минуты','минут');


Самое крутое:
Моделей в корзине: <?=$arResult["COUNT_FITTING"];?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Это называется плюрализацией.
Можно поискать реализации по ключевому слову "plural" на packagist.
Примеры:
doctrine/inflector
symfony/inflector
mmucklo/inflect
wapmorgan/morphos (специально под русский и английский языки).
Ответ написан
Комментировать
InstantMedia
@InstantMedia
Вот так

Использовать вот так:

html_spellcount(54, 'модель|модели|моделей');
// или так
html_spellcount(54, 'модель', 'модели', 'моделей');
// выведет: 54 модели
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Комментировать
vodnicear
@vodnicear
вот пакет для Laravel
https://github.com/drandin/declension-nouns

но все-же посмотрите сначала на: https://github.com/wapmorgan/Morphos
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы