Помощник
|
склоняем слова |
Salikhoff_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
asbury |
2.4.2011, 15:28;
Ответить: asbury
Сообщение
#2
|
|
ну мне кажется надо от 0 до 99 все возможные варианты просто перечислить - естественно не каждый в отдельности, а промежутки от 5-20 "ов", 21 "", 22-24 "а", путем срезания последний двух цифр. Хотя скорее всегое сть более адекватные решения
|
|
|
forest69 |
2.4.2011, 16:44;
Ответить: forest69
Сообщение
#3
|
|
Смотришь на какую цифру оканчивается число и подставляешь к слову нужное окончание. Ведь что 1 ответ, что 101 ответ, одинаково.
Идея ясна? |
|
|
Letmetouchyou |
2.4.2011, 16:55;
Ответить: Letmetouchyou
Сообщение
#4
|
|
есть пример на яваскрипте, по аналогии и на пхп можешь сделать
[JS] <script> GetNoun = function(number, one, two, five) { number = Math.abs(number); number %= 100; if (number >= 5 && number <= 20) { return five; } number %= 10; if (number == 1) { return one; } if (number >= 2 && number <= 4) { return two; } return five; } alert( GetNoun(10, 'ответ', 'ответа', 'ответов') ); </script>[/JS] |
|
|
Salikhoff_hb
|
Сообщение
#5
|
|
forest69, ага, не мог бы примерно показать каким образом и еще например ответ больше 1 000 000 как укротить ответ
|
|
|
Salikhoff_hb
|
Сообщение
#6
|
|
Letmetouchyou, не хочу php и так уже js много!
|
|
|
Letmetouchyou |
2.4.2011, 18:07;
Ответить: Letmetouchyou
Сообщение
#7
|
|
(' post='107846 @ 2.4.2011, 20:07) Letmetouchyou, не хочу php и так уже js много! Логика в твоих словах совсем не видна |
|
|
Salikhoff_hb
|
Сообщение
#8
|
|
Letmetouchyou, запятую пропустил. Хочу сделать на php. Т.к. и так уже js много.
|
|
|
asbury |
2.4.2011, 18:24;
Ответить: asbury
Сообщение
#9
|
|
[PHP]function declOfNum2($number, $cases) {
$cases = array(2, 0, 1, 1, 1, 2); return sprintf($cases[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ], $number); }[/PHP] Пример использования: [PHP]echo declOfNum2(5, array("%d ответ", "%d ответа", "%d ответов"));[/PHP] |
|
|
Letmetouchyou |
2.4.2011, 18:58;
Ответить: Letmetouchyou
Сообщение
#10
|
|
Да вы че прикалываетесь?
[PHP]<?php function declination($number,$words){ //$number = (int)$number; list($single, $two, $few) = explode(',', preg_replace('/,\s*|\s*,/',',',$words) ); $number %= 100; //$number = substr( (string)$number,-2 ); if ($number >= 5 && $number <= 20) { return $few; } $number %= 10; if ($number == 1) { return $single; } if ($number >= 2 && $number <= 4) { return $two; } return $five; } $answer = declination(12, 'ответ, ответа, ответов'); var_dump($answer); ?>[/PHP] |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Как првильно указать слова для рекламы в Google на двух языках | 1 | Nekit | 907 | 12.2.2024, 23:58 автор: malamut |
|
Подключить ключевые слова для адвордс к загрузчику | 2 | Mukis | 4890 | 9.10.2021, 18:27 автор: Mukis |
|
Спарсить ключевые слова | 3 | Timka | 2330 | 30.12.2018, 2:52 автор: Timka |
|
Контент, ключевые слова, семантический анализ | 0 | Andry_mw | 1105 | 23.10.2015, 20:41 автор: Andry_mw |
|
Нужно подобрать ключевые слова для сайта (плачу 15 р. за 1 ключ) | 2 | Thrash | 1229 | 25.11.2014, 18:42 автор: Thrash |
Текстовая версия | Сейчас: 29.3.2024, 2:35 |