Количество страниц и морфология

Статус
В этой теме нельзя размещать новые ответы.

chapser

Гуру форума
Регистрация
12 Сен 2007
Сообщения
124
Реакции
89
Подскажите, почему не работает функция? При изменении значения в $res выводится "страниц", даже если указать цифру "2"
PHP:
$res = "1";

$countp = getPagesCount($res);

echo $res;
echo $countp;

function getPagesCount($res){
   $count_array=array("страница","страницы","страниц");
   $count = $count_array[2];
   $d=substr($num,strlen($num)-1,1);
    
   if($d==1) $count=$count_array[0];
     if($d>1 && $d<5) $count=$count_array[1];
     if($num>100){
       $d=(substr($num,strlen($num)-2,2));
       if($d>10 && $d<15) $count=$count_array[2];
     } else if($num>10 && $num<15) $count=$count_array[2];
   return $num.' '.$count;
}

Воспользуйся таким
Премного благодарен, все супер
 
Последнее редактирование модератором:
Воспользуйся таким
PHP:
pluralize($res, 'страница', 'страницы', 'страниц');

function pluralize($num, $str1, $str2, $str3){
    $val = $num % 100;
    if ($val > 10 && $val < 20) return "$num $str3";
    else {
        $val = $num % 10;
        if ($val == 1) return "$num $str1";
        elseif ($val > 1 && $val < 5) return "$num $str2";
        else return "$num $str3";
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху