Окончание слова
в зависимости от количества

Окончание слова
в зависимости от количества

Уверен, всем когда-нибудь придется столкнуться с подбором окончаний слов, зависящим от количества предмета.

Лучшее решение - один раз написать функцию и пользоваться потом сколько влезет:

<?php

$num = $input; // число
$scriptProperties['item'] = $options; // наименование
$scriptProperties['end_1'] = 'ов'; // например 45 товаров
$scriptProperties['end_2'] = ''; // например 31 товар
$scriptProperties['end_3'] = 'а'; // например // 2 товара

$stri = array( $scriptProperties['end_1'], $scriptProperties['end_2'], $scriptProperties['end_3'] );
$index = $num % 100;
if ( $index >=11 && $index <= 14 ) $index = 0;
else $index = ( $index %= 10 ) < 5 ? ( $index > 2 ? 2 : $index ): 0;

return $scriptProperties['item'] . $stri[$index];

В MODx, например, можно сделать его снипетом или как я - встроить в phx, и вызвать так: [[+total:end=`товар`]]


20 марта 2012, 12:24
PHP


Авторизация
Зайди на сайт с помощью соц. сети:
Тебе — сюда нельзя!!!
На сайте присутствует апокалиптичная тарабарщина
и нецензурная брань.
Хмм... и мне-то вообще-то насрать...
Продолжить
Нет, уйти с сайта