Question

I just need a little help here. Because I am creating a code for converting decimals to Money format in words. For example if

I have this number

'2143.45'

the output should be

'two thousand one hundred forty three and forty-five cents'

I found a code like this but I don't have an idea how to include cents.

<?php

function convertNumber($number)
{
    list($integer, $fraction) = explode(".", (string) $number);

    $output = "";

    if ($integer{0} == "-")
    {
        $output = "negative ";
        $integer    = ltrim($integer, "-");
    }
    else if ($integer{0} == "+")
    {
        $output = "positive ";
        $integer    = ltrim($integer, "+");
    }

    if ($integer{0} == "0")
    {
        $output .= "zero";
    }
    else
    {
        $integer = str_pad($integer, 36, "0", STR_PAD_LEFT);
        $group   = rtrim(chunk_split($integer, 3, " "), " ");
        $groups  = explode(" ", $group);

        $groups2 = array();
        foreach ($groups as $g)
        {
            $groups2[] = convertThreeDigit($g{0}, $g{1}, $g{2});
        }

        for ($z = 0; $z < count($groups2); $z++)
        {
            if ($groups2[$z] != "")
            {
                $output .= $groups2[$z] . convertGroup(11 - $z) . (
                        $z < 11
                        && !array_search('', array_slice($groups2, $z + 1, -1))
                        && $groups2[11] != ''
                        && $groups[11]{0} == '0'
                            ? " and "
                            : ", "
                    );
            }
        }

        $output = rtrim($output, ", ");
    }

    if ($fraction > 0)
    {
        $output .= " point";
        for ($i = 0; $i < strlen($fraction); $i++)
        {
            $output .= " " . convertDigit($fraction{$i});
        }
    }

    return $output;
}

function convertGroup($index)
{
    switch ($index)
    {
        case 11:
            return " decillion";
        case 10:
            return " nonillion";
        case 9:
            return " octillion";
        case 8:
            return " septillion";
        case 7:
            return " sextillion";
        case 6:
            return " quintrillion";
        case 5:
            return " quadrillion";
        case 4:
            return " trillion";
        case 3:
            return " billion";
        case 2:
            return " million";
        case 1:
            return " thousand";
        case 0:
            return "";
    }
}

function convertThreeDigit($digit1, $digit2, $digit3)
{
    $buffer = "";

    if ($digit1 == "0" && $digit2 == "0" && $digit3 == "0")
    {
        return "";
    }

    if ($digit1 != "0")
    {
        $buffer .= convertDigit($digit1) . " hundred";
        if ($digit2 != "0" || $digit3 != "0")
        {
            $buffer .= " and ";
        }
    }

    if ($digit2 != "0")
    {
        $buffer .= convertTwoDigit($digit2, $digit3);
    }
    else if ($digit3 != "0")
    {
        $buffer .= convertDigit($digit3);
    }

    return $buffer;
}

function convertTwoDigit($digit1, $digit2)
{
    if ($digit2 == "0")
    {
        switch ($digit1)
        {
            case "1":
                return "ten";
            case "2":
                return "twenty";
            case "3":
                return "thirty";
            case "4":
                return "forty";
            case "5":
                return "fifty";
            case "6":
                return "sixty";
            case "7":
                return "seventy";
            case "8":
                return "eighty";
            case "9":
                return "ninety";
        }
    } else if ($digit1 == "1")
    {
        switch ($digit2)
        {
            case "1":
                return "eleven";
            case "2":
                return "twelve";
            case "3":
                return "thirteen";
            case "4":
                return "fourteen";
            case "5":
                return "fifteen";
            case "6":
                return "sixteen";
            case "7":
                return "seventeen";
            case "8":
                return "eighteen";
            case "9":
                return "nineteen";
        }
    } else
    {
        $temp = convertDigit($digit2);
        switch ($digit1)
        {
            case "2":
                return "twenty-$temp";
            case "3":
                return "thirty-$temp";
            case "4":
                return "forty-$temp";
            case "5":
                return "fifty-$temp";
            case "6":
                return "sixty-$temp";
            case "7":
                return "seventy-$temp";
            case "8":
                return "eighty-$temp";
            case "9":
                return "ninety-$temp";
        }
    }
}

function convertDigit($digit)
{
    switch ($digit)
    {
        case "0":
            return "zero";
        case "1":
            return "one";
        case "2":
            return "two";
        case "3":
            return "three";
        case "4":
            return "four";
        case "5":
            return "five";
        case "6":
            return "six";
        case "7":
            return "seven";
        case "8":
            return "eight";
        case "9":
            return "nine";
    }
}

 $num = 500254.89;
 $test = convertNumber($num);

 echo $test;

?>
Was it helpful?

Solution

There's a PEAR library that can do this.

EDIT

Or you can, at the end of your code, do this

echo $test . ' cents';

OTHER TIPS

indian version

function convert_number_to_words($number) {

    $hyphen      = '-';
    $conjunction = ' and ';
    $separator   = ', ';
    $negative    = 'negative ';
    $decimal     = ' point ';
    $dictionary  = array(
        0                   => 'zero',
        1                   => 'one',
        2                   => 'two',
        3                   => 'three',
        4                   => 'four',
        5                   => 'five',
        6                   => 'six',
        7                   => 'seven',
        8                   => 'eight',
        9                   => 'nine',
        10                  => 'ten',
        11                  => 'eleven',
        12                  => 'twelve',
        13                  => 'thirteen',
        14                  => 'fourteen',
        15                  => 'fifteen',
        16                  => 'sixteen',
        17                  => 'seventeen',
        18                  => 'eighteen',
        19                  => 'nineteen',
        20                  => 'twenty',
        30                  => 'thirty',
        40                  => 'fourty',
        50                  => 'fifty',
        60                  => 'sixty',
        70                  => 'seventy',
        80                  => 'eighty',
        90                  => 'ninety',
        100                 => 'hundred',
        1000                => 'thousand',
        100000             => 'lakh',
        10000000          => 'crore'
    );

    if (!is_numeric($number)) {
        return false;
    }

    if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
        // overflow
        trigger_error(
            'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
            E_USER_WARNING
        );
        return false;
    }

    if ($number < 0) {
        return $negative . $this->convert_number_to_words(abs($number));
    }

    $string = $fraction = null;

    if (strpos($number, '.') !== false) {
        list($number, $fraction) = explode('.', $number);
    }

    switch (true) {
        case $number < 21:
            $string = $dictionary[$number];
            break;
        case $number < 100:
            $tens   = ((int) ($number / 10)) * 10;
            $units  = $number % 10;
            $string = $dictionary[$tens];
            if ($units) {
                $string .= $hyphen . $dictionary[$units];
            }
            break;
        case $number < 1000:
            $hundreds  = $number / 100;
            $remainder = $number % 100;
            $string = $dictionary[$hundreds] . ' ' . $dictionary[100];
            if ($remainder) {
                $string .= $conjunction . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 100000:
            $thousands   = ((int) ($number / 1000));
            $remainder = $number % 1000;

            $thousands = $this->convert_number_to_words($thousands);

            $string .= $thousands . ' ' . $dictionary[1000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 10000000:
            $lakhs   = ((int) ($number / 100000));
            $remainder = $number % 100000;

            $lakhs = $this->convert_number_to_words($lakhs);

            $string = $lakhs . ' ' . $dictionary[100000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 1000000000:
            $crores   = ((int) ($number / 10000000));
            $remainder = $number % 10000000;

            $crores = $this->convert_number_to_words($crores);

            $string = $crores . ' ' . $dictionary[10000000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        default:
            $baseUnit = pow(1000, floor(log($number, 1000)));
            $numBaseUnits = (int) ($number / $baseUnit);
            $remainder = $number % $baseUnit;
            $string = $this->convert_number_to_words($numBaseUnits) . ' ' . $dictionary[$baseUnit];
            if ($remainder) {
                $string .= $remainder < 100 ? $conjunction : $separator;
                $string .= $this->convert_number_to_words($remainder);
            }
            break;
    }

    if (null !== $fraction && is_numeric($fraction)) {
        $string .= $decimal;
        $words = array();
        foreach (str_split((string) $fraction) as $number) {
            $words[] = $dictionary[$number];
        }
        $string .= implode(' ', $words);
    }

    return $string;
}
<?php function numtowords($num){ 
$decones = array( 
            '01' => "One", 
            '02' => "Two", 
            '03' => "Three", 
            '04' => "Four", 
            '05' => "Five", 
            '06' => "Six", 
            '07' => "Seven", 
            '08' => "Eight", 
            '09' => "Nine", 
            10 => "Ten", 
            11 => "Eleven", 
            12 => "Twelve", 
            13 => "Thirteen", 
            14 => "Fourteen", 
            15 => "Fifteen", 
            16 => "Sixteen", 
            17 => "Seventeen", 
            18 => "Eighteen", 
            19 => "Nineteen" 
            );
$ones = array( 
            0 => " ",
            1 => "One",     
            2 => "Two", 
            3 => "Three", 
            4 => "Four", 
            5 => "Five", 
            6 => "Six", 
            7 => "Seven", 
            8 => "Eight", 
            9 => "Nine", 
            10 => "Ten", 
            11 => "Eleven", 
            12 => "Twelve", 
            13 => "Thirteen", 
            14 => "Fourteen", 
            15 => "Fifteen", 
            16 => "Sixteen", 
            17 => "Seventeen", 
            18 => "Eighteen", 
            19 => "Nineteen" 
            ); 
$tens = array( 
            0 => "",
            2 => "Twenty", 
            3 => "Thirty", 
            4 => "Forty", 
            5 => "Fifty", 
            6 => "Sixty", 
            7 => "Seventy", 
            8 => "Eighty", 
            9 => "Ninety" 
            ); 
$hundreds = array( 
            "Hundred", 
            "Thousand", 
            "Million", 
            "Billion", 
            "Trillion", 
            "Quadrillion" 
            ); //limit t quadrillion 
$num = number_format($num,2,".",","); 
$num_arr = explode(".",$num); 
$wholenum = $num_arr[0]; 
$decnum = $num_arr[1]; 
$whole_arr = array_reverse(explode(",",$wholenum)); 
krsort($whole_arr); 
$rettxt = ""; 
foreach($whole_arr as $key => $i){ 
    if($i < 20){ 
        $rettxt .= $ones[$i]; 
    }
    elseif($i < 100){ 
        $rettxt .= $tens[substr($i,0,1)]; 
        $rettxt .= " ".$ones[substr($i,1,1)]; 
    }
    else{ 
        $rettxt .= $ones[substr($i,0,1)]." ".$hundreds[0]; 
        $rettxt .= " ".$tens[substr($i,1,1)]; 
        $rettxt .= " ".$ones[substr($i,2,1)]; 
    } 
    if($key > 0){ 
        $rettxt .= " ".$hundreds[$key]." "; 
    } 

} 
$rettxt = $rettxt." peso/s";

if($decnum > 0){ 
    $rettxt .= " and "; 
    if($decnum < 20){ 
        $rettxt .= $decones[$decnum]; 
    }
    elseif($decnum < 100){ 
        $rettxt .= $tens[substr($decnum,0,1)]; 
        $rettxt .= " ".$ones[substr($decnum,1,1)]; 
    }
    $rettxt = $rettxt." centavo/s"; 
} 
return $rettxt;} ?>

you can use this by

echo numtowords(156.50);

output is

One Hundred Fifty Six peso/s and Fifty centavo/s only.

Credit to the owner: Alex Culango PS: i've edited some lines because it has some error when the tens have "0" and also for proper decimal conversion to words and the peso and centavo placement.

If you don't want to edit the function, a quick and dirty way you can do this is by hacking the parts where it prints the words, like this: http://pastebin.com/UwSR8NpV It should work like the way you wanted it to.

The function you are using is fine .

For

2143.45

I think the output should be :

two thousand one hundred forty three and four five cents

And not :

two thousand one hundred forty three and forty five cents

But if you would like it that way , you can still use the function you are using .
Definitely a longer way of achieving it !!! :

$testNumber = '2143.45';

$tempNum = explode( '.' , $testNumber );

$convertedNumber = ( isset( $tempNum[0] ) ? convertNumber( $tempNum[0] ) : '' );

//  Use the below line if you don't want 'and' in the number before decimal point
$convertedNumber = str_replace( ' and ' ,' ' ,$convertedNumber );

//  In the below line if you want you can replace ' and ' with ' , '
$convertedNumber .= ( ( isset( $tempNum[0] ) and isset( $tempNum[1] ) )  ? ' and ' : '' );

$convertedNumber .= ( isset( $tempNum[1] ) ? convertNumber( $tempNum[1] ) .' cents' : '' );

echo $convertedNumber;

Displays :

two thousand, one hundred forty-three and forty-five cents

You can also incorporate the above code lines in to your converNumber function where it is translating the faction part if ($fraction > 0){ } .

For Indian Currnecy 
For Indian Currency
<html>
<head>
<title> Number to word converter</title>
</head>
<body>
<?php
$ones =array('',' One',' Two',' Three',' Four',' Five',' Six',' Seven',' Eight',' Nine',' Ten',' Eleven',' Twelve',' Thirteen',' Fourteen',' Fifteen',' Sixteen',' Seventeen',' Eighteen',' Nineteen');
$tens = array('','',' Twenty',' Thirty',' Fourty',' Fifty',' Sixty',' Seventy',' Eighty',' Ninety',);
$triplets = array('',' Thousand',' Lac',' Crore',' Arab',' Kharab');


function Show_Amount_In_Words($num) {
  global $ones, $tens, $triplets;
$str ="";


//$num =(int)$num;
$th= (int)($num/1000); 
$x = (int)($num/100) %10;
$fo= explode('.',$num);

if($fo[0] !=null){
$y=(int) substr($fo[0],-2);

}else{
    $y=0;
}

if($x > 0){
    $str =$ones[$x].' Hundred';

}
if($y>0){
if($y<20)
{
 $str .=$ones[$y];

}
else {
    $str .=$tens[($y/10)].$ones[($y%10)];
   }
}
$tri=1;
while($th!=0){

    $lk = $th%100;
    $th = (int)($th/100);
    $count =$tri;

    if($lk<20){
        if($lk == 0){
        $tri =0;}
        $str = $ones[$lk].$triplets[$tri].$str;
        $tri=$count;
        $tri++;
    }else{
        $str = $tens[$lk/10].$ones[$lk%10].$triplets[$tri].$str;
        $tri++;
    }
}
$num =(float)$num;
if(is_float($num)){
     $fo= (String) $num;
      $fo= explode('.',$fo);
       $fo1= @$fo[1];

}else{
    $fo1 =0;
}
$check = (int) $num;
 if($check !=0){
          return $str.' Rupees'.forDecimal($fo1);
    }else{
       return forDecimal($fo1);
    }
}//End function Show_Amount_In_Words

if(isset($_POST['num'])){
   $num = $_POST['num'];
 echo Show_Amount_In_Words($num);
 }



//function for decimal parts
 function forDecimal($num){
    global $ones,$tens;
    $str="";
    $len = strlen($num);
    if($len==1){
        $num=$num*10;
    }
    $x= $num%100;
    if($x>0){
    if($x<20){
        $str = $ones[$x].' Paise';
    }else{
        $str = $tens[$x/10].$ones[$x%10].' Paise';
    }
    }
     return $str;
 }  
?>
<form action='#' method='post'>
<input type='text' name='num' size='20'>
<input type='submit' name='submit' />
</form>
</body>
</html>
<?php

$price = mysqli_real_escape_string($conn, $_GET['price']);
$adprice = mysqli_real_escape_string($conn, $_GET['adprice']);
$number = $price-$adprice;

$no = round($number);
$point = round($number - $no, 2) * 100;
$hundred = null;
$digits_1 = strlen($no);
$i = 0;
$str = array();
$words = array('0' => '', '1' => 'One', '2' => 'Two',
    '3' => 'Three', '4' => 'Four', '5' => 'Five', '6' => 'Six',
    '7' => 'Seven', '8' => 'Eight', '9' => 'Nine',
    '10' => 'Ten', '11' => 'Eleven', '12' => 'Twelve',
    '13' => 'Thirteen', '14' => 'Fourteen',
    '15' => 'Fifteen', '16' => 'Sixteen', '17' => 'Seventeen',
    '18' => 'Eighteen', '19' =>'Nineteen', '20' => 'Twenty',
    '30' => 'Thirty', '40' => 'Forty', '50' => 'Fifty',
    '60' => 'Sixty', '70' => 'Seventy',
    '80' => 'Eighty', '90' => 'Ninety');
$digits = array('', 'Hundred', 'Thousand', 'Lakh', 'Crore');
while ($i < $digits_1) {
$divider = ($i == 2) ? 10 : 100;
$number = floor($no % $divider);
$no = floor($no / $divider);
$i += ($divider == 10) ? 1 : 2;
if ($number) {
    $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
    $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
    $str [] = ($number < 21) ? $words[$number] .
                " " . $digits[$counter] . $plural . " " . $hundred
                :
                $words[floor($number / 10) * 10]
                . " " . $words[$number % 10] . " "
                . $digits[$counter] . $plural . " " . $hundred;
            } else $str[] = null;
              }
$str = array_reverse($str);
$result = implode('', $str);
$points = ($point) ?
          "." . $words[$point / 10] . " " . 
          $words[$point = $point % 10] : '';
          echo $result . "  " . $points . "Only ";
 ?> 

I don't know about cents but I have created code for Indian Rupees.

<?php

echo getIndianCurrency(2851.05);


function getIndianCurrency(float $number)
{
    $decimal = round($number - ($no = floor($number)), 2) * 100;
    $decimal_part = $decimal;
    $hundred = null;
    $hundreds = null;
    $digits_length = strlen($no);
    $decimal_length = strlen($decimal);
    $i = 0;
    $str = array();
    $str2 = array();
    $words = array(0 => '', 1 => 'one', 2 => 'two',
        3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six',
        7 => 'seven', 8 => 'eight', 9 => 'nine',
        10 => 'ten', 11 => 'eleven', 12 => 'twelve',
        13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen',
        16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen',
        19 => 'nineteen', 20 => 'twenty', 30 => 'thirty',
        40 => 'forty', 50 => 'fifty', 60 => 'sixty',
        70 => 'seventy', 80 => 'eighty', 90 => 'ninety');
    $digits = array('', 'hundred','thousand','lakh', 'crore');

    while( $i < $digits_length ) {
        $divider = ($i == 2) ? 10 : 100;
        $number = floor($no % $divider);
        $no = floor($no / $divider);
        $i += $divider == 10 ? 1 : 2;
        if ($number) {
            $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
            $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
            $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str[] = null;
    }

    $d = 0;
    while( $d < $decimal_length ) {
        $divider = ($d == 2) ? 10 : 100;
        $decimal_number = floor($decimal % $divider);
        $decimal = floor($decimal / $divider);
        $d += $divider == 10 ? 1 : 2;
        if ($decimal_number) {
            $plurals = (($counter = count($str2)) && $decimal_number > 9) ? 's' : null;
            $hundreds = ($counter == 1 && $str2[0]) ? ' and ' : null;
            @$str2 [] = ($decimal_number < 21) ? $words[$decimal_number].' '. $digits[$decimal_number]. $plural.' '.$hundred:$words[floor($decimal_number / 10) * 10].' '.$words[$decimal_number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str2[] = null;
    }

    $Rupees = implode('', array_reverse($str));
    $paise = implode('', array_reverse($str2));
    $paise = ($decimal_part > 0) ? $paise . ' Paise' : '';
    return ($Rupees ? $Rupees . 'Rupees ' : '') . $paise;
}
?>

Output:

two thousand eight hundred and fifty one Rupees five Paise

I will write a post about its code description on guptatreepoint.com

Hi i have solved this problem using php

See this following link Stackoverflow Best Conversion Result for Indian Currency format

I tried to add something for the decimal value. Hope it will help.

<?php
function convertNumber($number)
{
    list($integer,$fraction) = explode(".", (string) $number);

    $output = " ";

    if ($integer{0} == "-")
    {
        $output = "negative ";
        $integer    = ltrim($integer, "-");
    }
    else if ($integer{0} == "+")
    {
        $output = "positive ";
        $integer    = ltrim($integer, "+");
    }

    if ($integer{0} == "0")
    {
        $output .= "zero";
    }
    else
    {
        $integer = str_pad($integer, 36, "0", STR_PAD_LEFT);
        $group   = rtrim(chunk_split($integer, 3, " "), " ");
        $groups  = explode(" ", $group);

        $groups2 = array();
        foreach ($groups as $g)
        {
            $groups2[] = convertThreeDigit($g{0}, $g{1}, $g{2});
        }

        for ($z = 0; $z < count($groups2); $z++)
        {
            if ($groups2[$z] != "")
            {
                $output .= $groups2[$z] . convertGroup(11 - $z) . (
                        $z < 11
                        && !array_search('', array_slice($groups2, $z + 1, -1))
                        && $groups2[11] != ''
                        && $groups[11]{0} == '0'
                            ? " and "
                            : " "
                    );
            }
        }

        $output = rtrim($output, ", ");
    }

    if ($fraction > 0)
    {
        $output .= " PESOS ";
        for ($i = 0; $i < strlen($fraction); $i++)
        {
           if($fraction==01){

               $i = 1;
                while ($i <2):
                     $output .= " and one centavo only";

                 $i++;
                endwhile;
           }
           else if($fraction==02){

               $i = 1;
                while ($i <2):
                     $output .= " and two centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==03){

               $i = 1;
                while ($i <2):
                     $output .= " and three centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==04){

               $i = 1;
                while ($i <2):
                         $output .= " and four centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==05){

               $i = 1;
                while ($i <2):
                         $output .= " and five centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==06){

               $i = 1;
                while ($i <2):
                         $output .= " and six centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==07){

              $i = 1;
                while ($i <2):
                         $output .= " point seven centavos only";

                 $i++;
                endwhile;
           }
            else if($fraction==8 || $fraction==08){

               $i = 1;
                while ($i <2):
                 $output .= " and eight centavos only";

                 $i++;
                endwhile;
           }
            else if($fraction==9 || $fraction==09){

               $i = 1;
                while ($i <2):
                 $output .= " and nine centavos only";

                 $i++;
                endwhile;
           }
            else if($fraction==10){

                  $i = 1;
                while ($i <2):
                  $output .= " and ten centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==11){

              $i = 1;
                while ($i <2):
                         $output .= " and eleven centavos only";

                 $i++;
                endwhile;
           }
             else if($fraction==12){

                 $i = 1;
                while ($i <2):
                     $output .= " and twelve centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==13){

             $i = 1;
                while ($i <2):
                         $output .= " and thirteen centavos only";

                 $i++;
                endwhile;
           }
            else if($fraction==14){

               $i = 1;
                while ($i <2):
                         $output .= " and fourteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==15){

               $i = 1;
                while ($i <2):
                         $output .= " and fifteen centavos only";

                 $i++;
                endwhile;
           }
           else if($fraction==16){

               $i = 1;
                while ($i <2):
                         $output .= " and sixteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==17){


               $i = 1;
                while ($i <2):
                     $output .= " and seventeen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==18){


               $i = 1;
                while ($i <2):
                $output .= " and eighteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==19){

               $i = 1;
                while ($i <2):
                         $output .= " and nineteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==20){

               $i = 1;
                while ($i <2):
                     $output .= " and twenty centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==21){
               $i = 1;
                while ($i <2):
                  $output .= " and twenty one centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==22){

              $i = 1;
                while ($i <2):
                         $output .= " and twenty two centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==23){
                 $i = 1;
                while ($i <2):
                         $output .= " and twenty three centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==24){

                 $i = 1;
                while ($i <2):
                     $output .= " and twenty four centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==25){

             $i = 1;
                while ($i <2):
                 $output .= " and twenty five centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==26){

                $i = 1;
                while ($i <2):
                    $output .= " and twenty six centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==27){

                $i = 1;
                while ($i <2):
                 $output .= " and twenty seven centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==28){

                $i = 1;
                while ($i <2):
                    $output .= " and twenty eight centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==29){

                $i = 1;
                while ($i <2):
                     $output .= " and twenty nine centavos only";
                    $i++;
                endwhile;
           }
             else if($fraction ==30){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==31){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty one centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==32){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==33){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty three centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==34){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==35){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty five centavos only";
                    $i++;
                endwhile;
           }
             else if($fraction ==36){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty six centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==37){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==38){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==39){

                $i = 1;
                while ($i <2):
                     $output .= " and thirty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==40){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==41){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==42){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==43){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==44){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==45){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==46){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==47){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==48){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==49){

                $i = 1;
                while ($i <2):
                     $output .= " and fourty nine centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==50){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==51){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==52){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==53){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==54){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==55){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==56){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==57){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==58){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==59){

                $i = 1;
                while ($i <2):
                     $output .= " and fifty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==60){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty centavos only";
                    $i++;
                endwhile;
           }
          else if($fraction ==61){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==62){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==63){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==64){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty four centavos only";
                    $i++;
                endwhile;
           }
          else if($fraction ==65){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty five centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==66){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty six centavos only";
                    $i++;
                endwhile;
           }

         else if($fraction ==67){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty seven centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==68){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty eight centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==69){

                $i = 1;
                while ($i <2):
                     $output .= " and sixty nine centavos only";
                    $i++;
                endwhile;
           }
       else if($fraction ==70){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy centavos only";
                    $i++;
                endwhile;
           }
     else if($fraction ==71){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy one centavos only";
                    $i++;
                endwhile;
           }

     else if($fraction ==72){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy two centavos only";
                    $i++;
                endwhile;
           }
    else if($fraction ==73){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy three centavos only";
                    $i++;
                endwhile;
           }
     else if($fraction ==74){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy four centavos only";
                    $i++;
                endwhile;
           }

            else if($fraction ==75){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy five centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==76){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==77){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy seven centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==78){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy eight centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==79){

                $i = 1;
                while ($i <2):
                     $output .= " and seventy nine centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==80){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==81){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty one centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==82){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty two centavos only";
                    $i++;
                endwhile;
           }
       else if($fraction ==83){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty three centavos only";
                    $i++;
                endwhile;
           }
      else if($fraction ==84){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty four centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==85){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty five centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==86){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==87){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==88){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==89){

                $i = 1;
                while ($i <2):
                     $output .= " and eighty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==90){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==91){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==92){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==93){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==94){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==95){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==96){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==97){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==98){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==99){

                $i = 1;
                while ($i <2):
                     $output .= " and ninety nine centavos only";
                    $i++;
                endwhile;
           }

        }

    }
      else{
            $output .= " PESOS ONLY";
           }

    return $output;
}

function convertGroup($index)
{
    switch ($index)
    {
        case 11:
            return " decillion";
        case 10:
            return " nonillion";
        case 9:
            return " octillion";
        case 8:
            return " septillion";
        case 7:
            return " sextillion";
        case 6:
            return " quintrillion";
        case 5:
            return " quadrillion";
        case 4:
            return " trillion";
        case 3:
            return " billion";
        case 2:
            return " million";
        case 1:
            return " thousand";
        case 0:
            return "";
    }
}

function convertThreeDigit($digit1, $digit2, $digit3)
{
    $buffer = " ";

    if ($digit1 == "0" && $digit2 == "0" && $digit3 == "0")
    {
        return "";
    }

    if ($digit1 != "0")
    {
        $buffer .= convertDigit($digit1) . " hundred";
        if ($digit2 != "0" || $digit3 != "0")
        {
            $buffer .= " ";
        }
    }

    if ($digit2 != "0")
    {
        $buffer .= convertTwoDigit($digit2, $digit3);
    }
    else if ($digit3 != "0")
    {
        $buffer .= convertDigit($digit3);
    }

    return $buffer;
}

function convertTwoDigit($digit1, $digit2)
{
    if ($digit2 == "0")
    {
        switch ($digit1)
        {
            case "1":
                return "ten";
            case "2":
                return "twenty";
            case "3":
                return "thirty";
            case "4":
                return "forty";
            case "5":
                return "fifty";
            case "6":
                return "sixty";
            case "7":
                return "seventy";
            case "8":
                return "eighty";
            case "9":
                return "ninety";
        }
    } else if ($digit1 == "1")
    {
        switch ($digit2)
        {
            case "1":
                return "eleven";
            case "2":
                return "twelve";
            case "3":
                return "thirteen";
            case "4":
                return "fourteen";
            case "5":
                return "fifteen";
            case "6":
                return "sixteen";
            case "7":
                return "seventeen";
            case "8":
                return "eighteen";
            case "9":
                return "nineteen";
        }
    } else
    {
        $temp = convertDigit($digit2);
        switch ($digit1)
        {
            case "2":
                return "twenty $temp";
            case "3":
                return "thirty $temp";
            case "4":
                return "forty $temp";
            case "5":
                return "fifty $temp";
            case "6":
                return "sixty $temp";
            case "7":
                return "seventy $temp";
            case "8":
                return "eighty $temp";
            case "9":
                return "ninety $temp";
        }
    }
}

function convertDigit($digit)
{
    switch ($digit)
    {
        case "0":
            return "zero";
        case "1":
            return "one";
        case "2":
            return "two";
        case "3":
            return "three";
        case "4":
            return "four";
        case "5":
            return "five";
        case "6":
            return "six";
        case "7":
            return "seven";
        case "8":
            return "eight";
        case "9":
            return "nine";
    }

}
strtoupper(convertNumber(2143.45)

?>
// three hundred and thirteen rupees and seventy-six paise
echo getIndianCurrency(313.76);

function getIndianCurrency(float $number)
{
    $decimal = round($number - ($no = floor($number)), 2) * 100;
    $hundred = null;
    $digits_length = strlen($no);
    $i = 0;
    $str = array();
    $words = array(0 => '', 1 => 'one', 2 => 'two',
        3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six',
        7 => 'seven', 8 => 'eight', 9 => 'nine',
        10 => 'ten', 11 => 'eleven', 12 => 'twelve',
        13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen',
        16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen',
        19 => 'nineteen', 20 => 'twenty', 30 => 'thirty',
        40 => 'forty', 50 => 'fifty', 60 => 'sixty',
        70 => 'seventy', 80 => 'eighty', 90 => 'ninety');
    $digits = array('', 'hundred','thousand','lakh', 'crore');

    while( $i < $digits_length ) {
        $divider = ($i == 2) ? 10 : 100;
        $number = floor($no % $divider);
        $no = floor($no / $divider);
        $i += $divider == 10 ? 1 : 2;
        if ($number) {
            $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
            $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
            $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str[] = null;
    }

    $rupees = implode('', array_reverse($str));
    $paise = '';

    if ($decimal) {
        $paise = 'and ';
        $decimal_length = strlen($decimal);

        if ($decimal_length == 2) {
            if ($decimal >= 20) {
                $dc = $decimal % 10;
                $td = $decimal - $dc;
                $ps = ($dc == 0) ? '' : '-' . $words[$dc];

                $paise .= $words[$td] . $ps;
            } else {
                $paise .= $words[$decimal];
            }
        } else {
            $paise .= $words[$decimal % 10];
        }

        $paise .= ' paise';
    }

    return ($rupees ? $rupees . 'rupees ' : '') . $paise ;
}

Uses:

echo getIndianCurrency(313.76);

Output:

three hundred and thirteen rupees and seventy-six paise

This code is helpful to get the output for Dollar...

$word = numberTowords(100045.95);
echo $word;
exit();

function numberTowords($num)
{

    $ones = array(
        0 =>"ZERO",
        1 => "ONE",
        2 => "TWO",
        3 => "THREE",
        4 => "FOUR",
        5 => "FIVE",
        6 => "SIX",
        7 => "SEVEN",
        8 => "EIGHT",
        9 => "NINE",
        10 => "TEN",
        11 => "ELEVEN",
        12 => "TWELVE",
        13 => "THIRTEEN",
        14 => "FOURTEEN",
        15 => "FIFTEEN",
        16 => "SIXTEEN",
        17 => "SEVENTEEN",
        18 => "EIGHTEEN",
        19 => "NINETEEN"
    );

    $tens = array( 
        0 => "ZERO",
        1 => "TEN",
        2 => "TWENTY",
        3 => "THIRTY", 
        4 => "FORTY", 
        5 => "FIFTY", 
        6 => "SIXTY", 
        7 => "SEVENTY", 
        8 => "EIGHTY", 
        9 => "NINETY" 
    ); 

    $hundreds = array( 
        "HUNDRED", 
        "THOUSAND", 
        "MILLION", 
        "BILLION", 
        "TRILLION", 
        "QUARDRILLION" 
    ); /*limit t quadrillion */

    $num = number_format($num,2,".",","); 
    $num_arr = explode(".",$num); 
    $wholenum = $num_arr[0]; 
    $decnum = $num_arr[1]; 

    $whole_arr = array_reverse(explode(",",$wholenum)); 
    krsort($whole_arr,1); 

    $rettxt = ""; 
    foreach($whole_arr as $key => $i){
      
        while(substr($i,0,1)=="0")
            $i=substr($i,1,5);
        if($i < 20){ 
            /* echo "getting:".$i; */
            $rettxt .= $ones[$i]; 
        }elseif($i < 100){ 
            if(substr($i,0,1)!="0")  $rettxt .= $tens[substr($i,0,1)]; 
            if(substr($i,1,1)!="0") $rettxt .= " ".$ones[substr($i,1,1)]; 
        } else{ 
             if(substr($i,0,1)!="0") $rettxt .= $ones[substr($i,0,1)]." ".$hundreds[0]; 
            if(substr($i,1,1)!="0")$rettxt .= " ".$tens[substr($i,1,1)]; 
            if(substr($i,2,1)!="0")$rettxt .= " ".$ones[substr($i,2,1)]; 
        } 
        if($key > 0){ 
            $rettxt .= " ".$hundreds[$key]." "; 
        }
    } 
    if($decnum > 0){
        $rettxt .= " AND ";
        if($decnum < 20) {
            $rettxt .= $ones[$decnum]." FILS";
        } elseif($decnum < 100) {
            $rettxt .= $tens[substr($decnum,0,1)];
            $rettxt .= " ".$ones[substr($decnum,1,1)]. " FILS";
        }
    }
    return $rettxt;
}

The output is : ONE HUNDRED THOUSAND FORTY FIVE AND NINETY FIVE FILS

Money format (India - Rupee) (Working upto 13 digits)

Here i convert number into word format(Currency)

Ex : if you enter 1011, then you will get answer: One Thousand Eleven Rupee

Using string and array function and control structure(if)

    // Ex: num = 1250.75

    <?php
    if (isset($_POST["num"])) {

       // Getting number before(".")
        $num = $_POST["num"];  // $num = 1250.75
        $num_length = strcspn($num, "."); // length of $num
        $new_num = substr($num, 0, $num_length); // $new_num = 1250
        $new_num = (double) $new_num; // this will remove zero like 0001 = 1 
        $length = strlen($new_num); // length of $new_num

       //Getting number after(".")
        $num2 = strchr($num, "."); // $num2 = .75

        $num2_length = strlen($num2); // length of $num2
        $new_num2 = substr($num2, 1, 3); // This'll give you only '75' from '.75'
        $new_num2 = (double) $new_num2; // remove zero like '05' equals to '5'
        $precision_len = strlen($new_num2); // length of $new_num2

    //Declare global variable
        global $result; // to store result of 1250
        global $result2; // to store result of 75


    // Check length of input and call appropriate function

        if ($length == 1) {
            if ($new_num == 0 && $new_num2 == NULL) {
                $result = "Zero Rupee";
            } else {
                $result = singleDigitWord($new_num) . " Rupee";
            }
            //echo $res;
        } elseif ($length == 2) {
            $result = twoDigitWord($new_num) . " Rupee";
            //echo $res;
        } elseif ($length == 3) {
            $result = threeDigitWord($new_num) . " Rupee";
            //echo $res;
        } elseif ($length == 4 || $length == 5) {
            $result = fourOrFiveDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 6 || $length == 7) {
            $result = sixOrSevenDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 8 || $length == 9) {
            $result = eightOrNineDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 10 || $length == 11) {
            $result = tenOrElevenDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 12 || $length == 13) {
            $result = twelveOrThirteenDigitWord($length, $new_num) . " Rupee";
        }

        if ($new_num2 > 0) {
            if ($precision_len == 1) {
                $result2 = singleDigitWord($new_num2) . " Paisa";
            } elseif ($precision_len == 2) {
                $result2 = twoDigitWord($new_num2) . " Paisa";
            }
        }
    }

 // Array containing value 1 to 9
    function singleDigitWord($a)
    {
        $array = [
            "1" => "One",
            "2" => "Two",
            "3" => "Three",
            "4" => "Four",
            "5" => "Five",
            "6" => "Six",
            "7" => "Seven",
            "8" => "Eight",
            "9" => "Nine",
        ];
        if (array_key_exists((int) $a, $array)) {
            return $array[$a];
        }
    }


// Array containing value 10 to 19
    function ten2nineteen($a)
    {
        $array = [
            "10" => "Ten",
            "11" => "Eleven",
            "12" => "Twelve",
            "13" => "Thirteen",
            "14" => "Fourteen",
            "15" => "Fifteen",
            "16" => "Sixteen",
            "17" => "Seventeen",
            "18" => "Eighteen",
            "19" => "Nineteen",
        ];
        if (array_key_exists((int) $a, $array)) {
            return $array[$a];
        }
    }

// if length is 2,then 10 to 99 digits conversion
    function twoDigitWord($a)
    {
        if ($a >= 10 && $a <= 19) {
            $output = ten2nineteen($a);
            return $output;
        } elseif ($a >= 20 && $a <= 29) {
            if ($a == 20) {
                return "Twenty";
            } else {
                $a = $a - 20;
                $y = singleDigitWord($a);
                return "Twenty " . $y;
            }
        } elseif ($a >= 30 && $a <= 39) {
            if ($a == 30) {
                return "Thirty";
            } else {
                $a = $a - 30;
                $y = singleDigitWord($a);
                return "Thirty " . $y;
            }
        } elseif ($a >= 40 && $a <= 49) {
            if ($a == 40) {
                return "Forty";
            } else {
                $a = $a - 40;
                $y = singleDigitWord($a);
                return "Forty " . $y;
            }
        } elseif ($a >= 50 && $a <= 59) {
            if ($a == 50) {
                return "Fifty";
            } else {
                $a = $a - 50;
                $y = singleDigitWord($a);
                return "Fifty " . $y;
            }
        } elseif ($a >= 60 && $a <= 69) {
            if ($a == 60) {
                return "Sixty";
            } else {
                $a = $a - 60;
                $y = singleDigitWord($a);
                return "Sixty " . $y;
            }
        } elseif ($a >= 70 && $a <= 79) {
            if ($a == 70) {
                return "Seventy";
            } else {
                $a = $a - 70;
                $y = singleDigitWord($a);
                return "Seventy " . $y;
            }
        } elseif ($a >= 80 && $a <= 89) {
            if ($a == 80) {
                return "Eighty";
            } else {
                $a = $a - 80;
                $y = singleDigitWord($a);
                return "Eighty " . $y;
            }
        } elseif ($a >= 90 && $a <= 99) {
            if ($a == 90) {
                return "Ninty";
            } else {
                $a = $a - 90;
                $y = singleDigitWord($a);
                return "Ninty " . $y;
            }
        }
    }

// if length is 3,then 100 to 999 digits conversion
    function threeDigitWord($a)
    {

        $output = str_split($a);
        $first = singleDigitWord($output[0]);
        $lastdigits = substr($a, -2);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Hundred " . $second;
    }

// if length is 4 or 5,then 1000 to 99999 digits conversion
    function fourOrFiveDigitWord($length, $a)
    {
        if ($length == 4) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 5) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -3);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Thousand " . $second;
    }

// if length is 6 or 7,then 100000 to 9999999 digits conversion
    function sixOrSevenDigitWord($length, $a)
    {
        if ($length == 6) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 7) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -5);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Lakh " . $second;
    }

// if length is 8 or 9,then 10000000 to 999999999 digits conversion
    function eightOrNineDigitWord($length, $a)
    {
        if ($length == 8) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 9) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -7);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Crore " . $second;
    }

// if length is 10 or 11,then 1000000000 to 99999999999 digits conversion
    function tenOrElevenDigitWord($length, $a)
    {
        if ($length == 10) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 11) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -9);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Billion " . $second;
    }

// if length is 12 or 13,then 100000000000 to 99999999999999 digits conversion
    function twelveOrThirteenDigitWord($length, $a)
    {
        if ($length == 12) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 13) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -11);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Trillion " . $second;
    }


// this function gets value of $lastdigits which is declared in function above 
// like twelveOrThirteenDigitWord or many other 
// Ex: if your num is 1111 then your last digit will be 111 and you'll get 
// answer by calling this function. lastDigitWords function call one of above 
// function but i declare it here beacause we do not need to write it in every 
// function above to get conversion of $lastdigits

    function lastDigitWord($a)
    {
        if ($a <= 9) {
            return singleDigitWord($a);
        } elseif ($a >= 10 && $a <= 99) {
            return twoDigitWord($a);
        } elseif ($a >= 100 && $a <= 999) {
            return threeDigitWord($a);
        } elseif ($a >= 1000 && $a <= 99999) {
            $new_length = strlen($a);
            return fourORFiveDigitWord($new_length, $a);
        } elseif ($a >= 100000 && $a <= 9999999) {
            $new_length = strlen($a);
            return sixORSevenDigitWord($new_length, $a);
        } elseif ($a >= 10000000 && $a <= 999999999) {
            $new_length = strlen($a);
            return eightOrNineDigitWord($new_length, $a);
        } elseif ($a >= 1000000000 && $a <= 99999999999) {
            $new_length = strlen($a);
            return tenOrElevenDigitWord($new_length, $a);
        }
    }
    ?>
    <html>
        <body>
            <form name="myForm" method="POST" action="">
                <table cellspacing="10" cellpadding="10">
                    <tr>
                        <td><label for="num">Enter Number: </label></td>
                        <td><input type="text" name="num" id="num" value="<?php
                            if (isset($_POST['num'])) {
                                echo $_POST['num'];
                            }
                            ?>"></td>
                        <td><input type="submit" name="submit" id="submit" value="submit"></td>
                    </tr>
                </table>
            </form>
            <p><b>In words : </b>
                <?php
                global $result;
                global $result2;
                echo $result . " " . $result2;
                ?>
            </p>
        </body>
    </html>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top