Thursday, December 29, 2016

PHP - Whole Number to Words


Converting whole number to word using PHP language


Since a boredom strikes, here is a simple code for converting a whole number to words in PHP language:

 - Supports 1 to 999,999,999

<?php

$result = numbertoWord(5);

function numbertoWord($number) {
  $words = array();
  $ones = ['one','two','three','four','five','six','seven','eight','nine'];
  $tens = ['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen'];
  $hundredToMillions =['twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety','hundred','thousand','hundred thousand','million'];

  if($number > 0) {
    if($number < 10) {
$words[] = $ones[$number-1];
    }
    if($number > 9 && $number < 20) {
$words[] = $tens[$number - 10];
    }
    if($number < 100 && $number > 19) {
$firstNumber = substr($number,0,1);
$words[] = $hundredToMillions[$firstNumber-2];
$words[] = numbertoWord( substr($number,1,strlen($number)) );
    }
    if($number > 99 && $number < 1000) {
$firstNumber = substr($number,0, 1);
$words[] = $ones[$firstNumber-1];
$words[] = $hundredToMillions[8];
$words[] = numbertoWord( substr($number,1, strlen($number)) );
    }
    if($number > 999 & $number < 100000) {
$firstNumber = strlen($number) != 5 ? substr($number, 0, 1) : null;
$words[] = $firstNumber ? $ones[$firstNumber-1] : numbertoWord( substr($number, 0, 2) );
$words[] = $hundredToMillions[9];
$from = $firstNumber ? 1 : 2;
$to = strlen($number);
$words[] = numbertoWord( substr($number, $from, $to) );
    }
    if($number > 99999 & $number < 1000000) {
        $firstNumber = strlen($number) != 6 ? substr($number, 0, 1) : null;
        $words[] = $firstNumber ? $ones[$firstNumber-1] : numbertoWord( substr($number, 0, 3) );
        $words[] = $hundredToMillions[9];
        $from = $firstNumber ? 1 : 3;
        $to = strlen($number);
        $words[] = numbertoWord( substr($number, $from, $to) );
    }
   if($number > 999999 & $number < 1000000000) {
        $firstNumber = strlen($number) != 9 ? substr($number, 0, 1) : null;
        $words[] = $firstNumber ? $ones[$firstNumber-1] : numbertoWord( substr($number, 0, 3) );
        $words[] = $hundredToMillions[11];
        $from = $firstNumber ? 1 : 3;
        $to = strlen($number);
        $words[] = numbertoWord( substr($number, $from, $to) );
    }
  }
  return implode( empty($words) ? "" : " ",$words);
}