Вывод слов в разной форме(1 день, 2 дня, 5 дней)

Не редко возникает необходимость вывода числа с текстовой подписью. Например, вывод количества дней - 1 день, 2 дня, 5 дней. Как можно заметить, форма слова меняется в зависимости от числа. Чтобы не писать условия для каждого случая, можно составить универсальное условие.

Пример:
// функция 
function numForm($number, $forma1, $forma2, $forma3){    
    if(($number == "0")  
or (($number >= "5")  
and ($number <= "20"))  
or preg_match("|[056789]$|",$number) 
    ){ 
        return "$number $forma3"; 
    }    
      
    if(preg_match("|[1]$|",$number)){ 
        return "$number $forma1"; 
    } 
          
    if(preg_match("|[234]$|",$number)){ 
        return "$number $forma2"; 
    } 
} 
 
// пример использования 
$array = array(1, 2, 5); 
foreach($array as $num){ 
  echo numForm($num, "день", "дня", "дней") . "<br/>"; 
}


В примере была использована не описанная ранее функция preg_match. Она позволяет осуществлять проверку значения на соответствию регулярному выражению.
Теги:
preg_match,
Добавлено: 30 Марта 2018 20:26:21 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...