<?php

$millions = array(
    0 => 'миллионов',
    11 => 'миллионов',
    1 => 'миллион',
    12 => 'миллионов',
    2 => 'миллиона',
    13 => 'миллионов',
    3 => 'миллиона',
    14 => 'миллионов',
    4 => 'миллиона',
    15 => 'миллионов',
    5 => 'миллионов',
    16 => 'миллионов',
    6 => 'миллионов',
    17 => 'миллионов',
    7 => 'миллионов',
    18 => 'миллионов',
    8 => 'миллионов',
    19 => 'миллионов',
    9 => 'миллионов'
);
$thousand = array(
    0 => 'тысяч',
    1 => 'тысяча',
    11 => 'тысяч',
    2 => 'тысячи',
    12 => 'тысяч',
    3 => 'тысячи',
    13 => 'тысяч',
    4 => 'тысячи',
    14 => 'тысяч',
    5 => 'тысяч',
    15 => 'тысяч',
    6 => 'тысяч',
    16 => 'тысяч',
    7 => 'тысяч',
    17 => 'тысяч',
    8 => 'тысяч',
    18 => 'тысяч',
    9 => 'тысяч',
    19 => 'тысяч'
);
$rubles   = array(
    0 => 'рублей',
    1 => 'рубль',
    11 => 'рублей',
    2 => 'рубля',
    12 => 'рублей',
    3 => 'рубля',
    13 => 'рублей',
    4 => 'рубля',
    14 => 'рублей',
    5 => 'рублей',
    15 => 'рублей',
    6 => 'рублей',
    16 => 'рублей',
    7 => 'рублей',
    17 => 'рублей',
    8 => 'рублей',
    18 => 'рублей',
    9 => 'рублей',
    19 => 'рублей'
);
$odnaDve  = array(
    1 => 'одна',
    2 => 'две'
);
$spelling = array(
    0 => 'ноль',
    10 => 'десять',
    100 => 'сто',
    1 => 'один',
    11 => 'одиннадцать',
    20 => 'двадцать',
    200 => 'двести',
    2 => 'два',
    12 => 'двенадцать',
    30 => 'тридцать',
    300 => 'триста',
    3 => 'три',
    13 => 'тринадцать',
    40 => 'сорок',
    400 => 'четыреста',
    4 => 'четыре',
    14 => 'четырнадцать',
    50 => 'пятьдесят',
    500 => 'пятьсот',
    5 => 'пять',
    15 => 'пятнадцать',
    60 => 'шестьдесят',
    600 => 'шестьсот',
    6 => 'шесть',
    16 => 'шестнадцать',
    70 => 'семьдесят',
    700 => 'семьсот',
    7 => 'семь',
    17 => 'семнадцать',
    80 => 'восемьдесят',
    800 => 'восемьсот',
    8 => 'восемь',
    18 => 'восемнадцать',
    90 => 'девяносто',
    900 => 'девятьсот',
    9 => 'девять',
    19 => 'девятнадцать'
);

// начало миллионы
$number = 910000000;
if ($number == 0) {
    return;
}
$numberX = floor($number / 100000000); //Сотни миллионов
if ($numberX > 1) {
    $numberX .= "00";
    $text .= $spelling[$numberX];
} elseif ($numberX == 0) {
    $mill = true;
}
$numberX = floor($number % 100000000); //Десятки миллионов
$numberX = floor($numberX / 1000000);
if ($numberX > 10 && $numberX < 20) {
    $numberOn  = true;
    $numberOn1 = $numberX;
    $text .= " " . $spelling[$numberX];
} elseif ($numberX > 0) {
    $numberX = floor($numberX / 10);
    $numberX .= "0";
    $text .= " " . $spelling[$numberX];
} elseif ($numberX == 0) {
    $mill2 = true;
}
$numberX = floor($number % 10000000); //Единицы миллионов
$numberX = floor($numberX / 1000000);
if ($numberX > 0 && $numberOn == false) {
    $text .= " " . $spelling[$numberX];
} elseif ($numberOn == true) {
    $numberX = $numberOn1;
} elseif ($numberX == 0) {
    $mill3 = true;
}

if ($numberX > 10 && $numberX < 20) { // миллионы слово 
    $text .= " " . $millions[$numberX];
} elseif ($numberX == 0 && $mill == true && $mill2 == true && $mill3 == true) {
    
} elseif (floor($numberX % 10) > 0) {
    $numberX %= 10;
    $text .= " " . $millions[$numberX];
} elseif (floor($numberX % 10) == 0) {
    $numberX %= 10;
    $text .= " " . $millions[$numberX];
}

// начало тысячи
$numberX = floor($number % 1000000); //СОТНИ тыысяч
$numberX = floor($numberX / 100000);
if ($numberX > 0) {
    $numberX .= "00";
    $text .= " " . $spelling[$numberX];
} elseif ($numberX == 0) {
    $thous1 = true;
}
$numberX = floor($number % 100000); //ДЕСЯТКИ тыысяч
$numberX = floor($numberX / 1000);
if ($numberX > 10 && $numberX < 20) {
    $numberOn  = true;
    $numberOn1 = $numberX;
    $text .= " " . $spelling[$numberX];
} elseif ($numberX > 0) {
    $numberX = floor($numberX / 10);
    $numberX .= "0";
    $text .= " " . $spelling[$numberX];
} elseif ($numberX == 0) {
    $thous2 = true;
}

$numberX = floor($number % 10000); //ЕДИНИЦЫ тыысяч
$numberX = floor($numberX / 1000);
if ($numberX == 1 or $numberX == 2 && $numberOn == false) {
    $text .= " " . $odnaDve[$numberX];
} elseif ($numberX > 0 && $numberOn == false) {
    $text .= " " . $spelling[$numberX];
} elseif ($numberX == 0) {
    $thous3 = true;
} elseif ($numberOn == true) {
    $numberX = $numberOn1;
}


if ($numberX > 10 && $numberX < 20) { // ТЫСЯЧ 
    $text .= " " . $thousand[$numberX];
} elseif ($numberX == 0 && $thous1 == true && $thous2 == true && $thous3 == true) {
    
} elseif (floor($numberX % 10) > 0) {
    $numberX %= 10;
    $text .= " " . $thousand[$numberX];
} elseif (floor($numberX % 10) == 0) {
    $numberX %= 10;
    $text .= " " . $thousand[$numberX];
}


//начало сотни
$numberOn = false;
$numberX  = floor($number % 1000); //СОТНИ 
$numberX  = floor($numberX / 100);

if ($numberX > 0) {
    $numberX .= "00";
    $text .= " " . $spelling[$numberX];
}
$numberX = floor($number % 100); //ДЕСЯТКИ 

if ($numberX > 10 && $numberX < 20) {
    $numberOn  = true;
    $numberOn1 = $numberX;
    $text .= " " . $spelling[$numberX];
} elseif ($numberX > 0) {
    $numberX = floor($numberX / 10);
    $numberX .= "0";
    $text .= " " . $spelling[$numberX];
}

$numberX = floor($number % 10); //ЕДИНИЦЫ 
if ($numberX > 0 && $numberOn == false) {
    $text .= " " . $spelling[$numberX];
} elseif ($numberOn == true) {
    $numberX = $numberOn1;
}
$text .= " (" . ($number) . ")"; // Число в скобках

if ($numberX > 10 && $numberX < 20) { // РУБЛЕЙ
    $text .= " " . $rubles[$numberX];
} elseif (floor($numberX % 10) > 0) {
    $numberX %= 10;
    $text .= " " . $rubles[$numberX];
} elseif (floor($numberX % 10) == 0) {
    $numberX %= 10;
    $text .= " " . $rubles[$numberX];
}

echo $text;