How to convert Digits or numbers to word using PHP?

Here is the code to convert digits to word using PHP

Example:

564 : five hundred sixty four

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?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",
" forty",
" fifty",
" sixty",
" seventy",
" eighty",
" ninety"
);
 
$triplets = array(
"",
" thousand",
" million",
" billion",
" trillion",
" quadrillion",
" quintillion",
" sextillion",
" septillion",
" octillion",
" nonillion"
);
 
// recursive fn, converts three digits per pass
function convertTri($num, $tri) {
global $ones, $tens, $triplets;
 
// chunk the number, ...rxyy
$r = (int) ($num / 1000);
$x = ($num / 100) % 10;
$y = $num % 100;
 
// init the output string
$str = "";
 
// do hundreds
if ($x > 0)
$str = $ones[$x] . " hundred";
 
// do ones and tens
if ($y < 20)
$str .= $ones[$y];
else
$str .= $tens[(int) ($y / 10)] . $ones[$y % 10];
 
// add triplet modifier only if there
// is some output to be modified...
if ($str != "")
$str .= $triplets[$tri];
 
// continue recursing?
if ($r > 0)
return convertTri($r, $tri+1).$str;
else
return $str;
}
 
// returns the number as an anglicized string
function convertNum($num) {
$num = (int) $num;    // make sure it's an integer
 
if ($num < 0)
return "negative".convertTri(-$num, 0);
 
if ($num == 0)
return "zero";
 
return convertTri($num, 0);
}
 
// Returns an integer in -10^9 .. 10^9
// with log distribution
function makeLogRand() {
$sign = mt_rand(0,1)*2 - 1;
$val = randThousand() * 1000000
+ randThousand() * 1000
+ randThousand();
$scale = mt_rand(-9,0);
 
return $sign * (int) ($val * pow(10.0, $scale));
}
 
// example of usage
echo "564 : ".convertNum(564)."<br>";
echo "892 : ".convertNum(892);
?>

Output:

1
2
564 : five hundred sixty four
892 : eight hundred ninety two
Editorial Team
Editorial Team

We are a group of young techies trying to provide the best study material for all Electronic and Computer science students. We are publishing Microcontroller projects, Basic Electronics, Digital Electronics, Computer projects and also c/c++, java programs.

7 thoughts on “How to convert Digits or numbers to word using PHP?

  1. Dear Sir / Madam,

    Plz 31852297.00 means in Indian ways Three Crores Eighteen Lakhs Fifty Two Thoudand Two Hundred Ninty Seven only

    Plz help me.

    Regards
    Manas

  2. echo “564 : “.convertNum(10000000000);

    Output : one billion four hundred ten million sixty five thousand four hundred eight

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest updates on your inbox

Be the first to receive the latest updates from Codesdoc by signing up to our email subscription.

    StudentProjects.in