Created
April 14, 2012 07:59
-
-
Save fomigo/2382775 to your computer and use it in GitHub Desktop.
Russian Plural Form in PHP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
echo plural_form(42, array('арбуз', 'арбуза', 'арбузов')); | |
*/ | |
function plural_form($n, $forms) { | |
return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$forms[1]:$forms[2]); | |
} |
Will be good to add support for not-integer (float) numbers via this small change:
return is_float($n)?$forms[1]:($n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$forms[1]:$forms[2]));
33 минут
OK, how about this:
echo 33 . ' ' . plural_form(33, ['минута', 'минуты', 'минут']);
@fomigo looks like i've mixed up the words order🙏
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$n = abs(intval($n));