Я знаю, что это не совсем то, что вы ищете, но я взял это из комментариев на php.net где-то (не могу найти источник), он работает для вывода вроде 1st
, 243rd
и 85th
.
function ordinalize($num)
{
if ( ! is_numeric($num)) return $num;
if ($num % 100 >= 11 and $num % 100 <= 13)
{
return $num."th";
}
elseif ( $num % 10 == 1 )
{
return $num."st";
}
elseif ( $num % 10 == 2 )
{
return $num."nd";
}
elseif ( $num % 10 == 3 )
{
return $num."rd";
}
else
{
return $num."th";
}
}
Вы, возможно, захотите даже рассмотреть этот формат в любом случае для удобства чтения и простоты, в зависимости от того, насколько высоки ожидаемые числа. Если их меньше 100, вы сможете легко написать свою собственную функцию. Однако, если они могут стать действительно высокими:
«Здравствуйте, господин пользователь, это ваши три тысячи четыреста двадцать пятый отзыв.»
Звучит немного неловко:)
Надеюсь, это поможет некоторым.