ФорумПрограммированиеПыхнуть хотите?Готовые решения → Морфология: окончания слов

Морфология: окончания слов

  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 19 июля 2008 г. 17:40

    Функция для формирования правильных словосочетаний с числительными, т.е.:
    1 просмотр
    2 просмотра
    5 просмотров
    Ну и т. д.

    http://s-a-p.in/interactive/theme/morphology-the-end-of-words
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 20 июля 2008 г. 2:44, спустя 9 часов 4 минуты 36 секунд

    Ух, писал давно - выводит время до определенного события с учетом склонений.
    1. event.zip (84)
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 20 июля 2008 г. 2:56, спустя 11 минут 23 секунды

    имхо удобнее передавать массив параметром, тогда можно его формировать в самом вызове:
    func($number, Array('объект', 'объекта', 'объектов'))

    + дополнительно был бы удобен вариант:
    func($number, 'объект', 'объекта', 'объектов')
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 20 июля 2008 г. 5:13, спустя 2 часа 16 минут 58 секунд

    наверное не стоит регулярки здесь использовать. Экономия на спичках, конечно, но проще всё-таки:

    function morph($num)
    {
    $last = $num % 100;
    if (11 <= $last && $last <= 19) {
    return 2;
    }
    $last = $num % 10;
    if ($last == 1) {
    return 0;
    } elseif (2 <= $last && $last <= 4) {
    return 1;
    }
    return 2;
    }
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 20 июля 2008 г. 5:21, спустя 8 минут 7 секунд

    Добавил вариант по совету vasa_c, спасибо.

    наверное не стоит регулярки здесь использовать. Экономия на спичках, конечно, но проще всё-таки:

    Ты верно заметил, что на спичках :) Хотя тоже неплохо.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!