среда, 26 сентября 2012 г.

Склонение слов php

Когда надо получить слово, склоненное в зависимости от числа, можно использовать эту функцию:

// $nouns = array('результат','результата','результатов');
function declension_nouns_number($nouns, $num)
{
    $num = sprintf('%02s', $num);
    
    if(substr($num, -2, 1) == 1) // если число от 10 до 19
    {
        return $nouns[2];
    }
    else
    {
        switch (substr($num, -1, 1))
        {
            case 1:
            {
                return $nouns[0];
            }
            case 2: case 3: case 4:
            {
                return $nouns[1];
            }
            default:
            {
                return $nouns[2];
            }
        }
    }
}