Данная функция возвращает строку из числа
<?php
// Функция парсирования триады
// $num - целое число от 0 до 999
// $words - массив, в котором элемент с индексом
// 0 - написание числа 1 (например - один', 'одна')
// 1 - написание числа 2 (аналогично)
// 2 - единицы в единственном числе им.падеже(рубль')
// 3 - единицы в единственном числе род.падеже('рубля')
// 4 - единицы во множественном числе им.падеже('рублей')
function ParseTriad($num, $words)
{
$hundreds = array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
$decads = array('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
$fdecads = array('десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
$ones = array('', $words[0], $words[1], 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять');
$result = '';
$h = floor($num / 100);
$result .= $hundreds[$h];
$d = floor(($num - $h * 100) / 10);
$c = ($num - $h * 100 - $d*10);
$result .= ($result != '') ? ' ' : '';
if($d == 1) { $result .= $fdecads[$c]; }
else {
if($d > 1) $result .= $decads[$d-2] . ' ';
$result .= $ones[$c];
}
$result .= ($result != '') ? ' ' : '';
switch ($c) {
case 1:
$result .= ($d != 1) ? $words[2] : $words[4];
break;
case 2:
case 3:
case 4:
$result .= ($d != 1) ? $words[3] : $words[4];
break;
default:
if ($num > 0) { $result .= $words[4]; }
}
return $result;
}
?>
Читать полностью »