Как преобразовать целочисленное значение в формат слова, используя php5? - PullRequest
3 голосов
/ 18 мая 2011

Я хочу преобразовать число в формат слова.

Например:

$count = 5;
echo "Hello Mr user this is your ".$count." review."

Мне нужен вывод, как это ...

«Здравствуйте, господин пользователь, это ваш пятый отзыв.»

Ответы [ 4 ]

2 голосов
/ 18 мая 2011

Проверьте это в другом потоке StackOverflow:

Преобразовать число в его строковое представление

1 голос
/ 18 мая 2011

Я знаю, что это не совсем то, что вы ищете, но я взял это из комментариев на 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, вы сможете легко написать свою собственную функцию. Однако, если они могут стать действительно высокими:

«Здравствуйте, господин пользователь, это ваши три тысячи четыреста двадцать пятый отзыв.»

Звучит немного неловко:)

Надеюсь, это поможет некоторым.

1 голос
/ 18 мая 2011

Если вы имеете в виду встроенную функцию, нет, PHP не имеет ее.Но Вы можете создать свой собственный.

Если вы смотрите только английские цифры, это не большая проблема.Но если вам нужно иметь дело с иностранным языком (например, арабским), вам придется проделать дополнительную работу, поскольку числа и объекты имеют пол.Таким образом, алгоритм становится немного более сложным.

Просто для записи, я работаю над созданием инструмента конвертации с открытым исходным кодом для арабского языка.

1 голос
/ 18 мая 2011

В php нет встроенной функции для этого.Но попробуйте внешнюю библиотеку, например: http://pear.php.net/package/Numbers_Words

...