Изменения текста, в зависимости от значения?

dmitry1984

Новичок
Изменения текста, в зависимости от значения?

Добрый день!

Есть переменная $bet, в которой хранится числовое значени, например 600, выводится это так "600 раз", т.е. при значени 643, будет написано тоже "раз", а надо "раза" :) Как такое замутить???
 

dmitry1984

Новичок
и что мне в него написать? если 1, 2, 3 то раза, если 5, 6, 7 раз и так пока не надоест?
 

Demiurg

Guest
а ты продумай все варианты их не так уж и много.
 

dmitry1984

Новичок
Варианто немного, впринципе в основном по последней цифре будет определяться, но

PHP:
if ($bet[1] == "3")
{
$text = "раза";
}
else
{
$text = "раз";
}
А если число 3, 4, 5 и т.д. значное? То будет неправильно отображено... Может подскажешь поконкретней, с примером?
 

Фанат

oncle terrible
Команда форума
возьми учебник русского языка, найди правила составления числительных. и составь программу.
с какой стати Demiurg должен составлять "пример" который ему не нужен?
Ты, парниша, не слишком ли многого хочешь?
 

Нечто

Психолог РНРClub
Наверное, что-то типа этого:
PHP:
function escheMnogoMnogoRaz($int) {
    $l = $int[(count($int)-1)];
    return ($l==2 || $l==3 || $l==4) ? 'раза' : 'раз';
}
 

Нечто

Психолог РНРClub
Действительно :D велик и могуч..
PHP:
function escheMnogoMnogoRazPro($int) {
    $c = count($int); $l = $int[($c-1)];
    return (($l==2 || $l==3 || $l==4) && ($c!=2 && $int[0]!=1)) ? 'раза' : 'раз';
}
Хотя, наверно, еще больше напутал =P
 

neko

tеam neko
PHP:
print $int.' raz'.(($int%=100)?(($int<10||$int>20)?(in_array($int%10,array(2,3,4))?'a':''):''):'');
 
Сверху