😎 » PHP - FAQ » PHP в прикладах » PHP - ВІДМІНЮВАННЯ ІМЕННИКІВ
32 0  

PHP - ВІДМІНЮВАННЯ ІМЕННИКІВ

Функція відмінювання як українських, російських так і англійських іменників

function declension($digit, $expr, $onlyword = false)
{
    if (!is_array($expr)) $expr = array_filter(explode(' ', $expr));
    if (empty($expr[2])) $expr[2] = $expr[1];
    $i = preg_replace('/[^0-9]+/s', '', $digit) % 100;
    if ($onlyword) $digit = '';
    if ($i >= 5 && $i <= 20) $res = $digit . ' ' . $expr[2];
    else {
        $i %= 10;
        if ($i <= 0) {
            return false;
        } elseif ($i == 1) {
            $res = $digit . ' ' . $expr[0];
        } elseif ($i >= 2 && $i <= 4) {
            $res = $digit . ' ' . $expr[1];
        } else
            $res = $digit . ' ' . $expr[2];
    }
    return trim($res);
}

$comments = 138;

// Для української
$result = declension($comments, 'Опублікований Опубліковано', true). ' '. declension($comments, 'коментар коментаря коментарів');
// Для російської
$result = declension($comments, 'Опубликован Опубликовано', true). ' '. declension($comments, 'комментарий комментария комментариев');
// Для англійської
$result = declension($comments, 'Published Posted', true). ' '. declension($comments, 'comment comments');

print_r($result);

Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023