Рецепт №20. Из книги «128 рецептов php»
Перейти к оглавлению
Не редко возникает необходимость вывода числа с текстовой подписью. Например, вывод количества дней — 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. Она позволяет осуществлять проверку значения на соответствию регулярному выражению.
