Иногда приходится выводить на странице сайта количество чего-либо с пояснением, например, 12 товаров. При этом количество может меняться и требуется подствалять правилььное окончание слова рядом с числом. Как раз для этих случаев я использую вспомогательную функцию, которую добавляю в свои проекты. <?
function getCountEndString($num=1, $string='', $type='M') {
$numEnd = intval(substr($num, -1));
$numEnd2 = intval(substr($num, -2));
$strEnd = '';
$variable = [
'M' => [
0 => "",
1 => "а",
2 => "ов",
],
'F' => [
0 => "а",
1 => "ы",
2 => "",
],
];
if($type == "F"){
$string = mb_substr($string, 0, -1);
}
if($numEnd > 1 && $numEnd < 5 && ($numEnd2 < 10 || $numEnd2 > 20)){
// 2-4, 22-24, 122-124 ...
// 'товар'.'а'
$strEnd = $variable[$type][1];
}
elseif($num == 1 || ($num > 20 && $numEnd == '1' && $numEnd