Skip to content

Instantly share code, notes, and snippets.

@aqlx86
Created March 6, 2013 09:15
Show Gist options
  • Save aqlx86/5097981 to your computer and use it in GitHub Desktop.
Save aqlx86/5097981 to your computer and use it in GitHub Desktop.
convert number to words.
<?php
function convert($n)
{
$d = 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', 1000000 => 'million', 1000000000 => 'billion'
);
$s = '';
switch (1)
{
case $n < 21:
$s = $d[$n];
break;
case $n < 100:
$tens = (int) ($n / 10) * 10;
$unit = $n % 10;
$s = $d[$tens];
if($unit)
{
$s.= ' '. $d[$unit];
}
break;
case $n < 1000:
$hundreds = ($n / 100);
$unit = $n % 100;
$s = $d[$hundreds] .' '. $d[100];
if($unit)
{
$s.= ' '. convert($unit);
}
break;
default:
$base = pow(1000, floor(log($n, 1000)));
$num_base = (int) ($n / $base);
$remainder = $n % $base;
$s = convert($num_base) . ' ' . $d[$base];
if ($remainder) {
$s.= ' '. convert($remainder);
}
break;
}
return $s;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment