note 108532 added to function.number-format
| From: | vgurudev at nikshepa dot com | Date: | Fri, 04 May 2012 08:37:20 +0000 |
| Subject: | note 108532 added to function.number-format | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-187471@lists.php.net to get a copy of this message | ||
<?php
function convertNumberToWordsForIndia($number){
//A function to convert numbers into Indian readable words with Cores, Lakhs and Thousands.
$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' => 'fouteen','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' => 'ninty');
//First find the length of the number
$number_length = strlen($number);
//Initialize an empty array
$number_array = array(0,0,0,0,0,0,0,0,0);
$received_number_array = array();
//Store all received numbers into an array
for($i=0;$i<$number_length;$i++){ $received_number_array[$i] = substr($number,$i,1); }
//Populate the empty array with the numbers received - most critical operation
for($i=9-$number_length,$j=0;$i<9;$i++,$j++){ $number_array[$i] = $received_number_array[$j]; }
$number_to_words_string = "";
//Finding out whether it is teen ? and then multiplying by 10, example 17 is seventeen, so if 1 is
preceeded with 7 multiply 1 by 10 and add 7 to it.
for($i=0,$j=1;$i<9;$i++,$j++){
if($i==0 || $i==2 || $i==4 || $i==7){
if($number_array[$i]=="1"){
$number_array[$j] = 10+$number_array[$j];
$number_array[$i] = 0;
}
}
}
$value = "";
for($i=0;$i<9;$i++){
if($i==0 || $i==2 || $i==4 || $i==7){ $value = $number_array[$i]*10; }
else{ $value = $number_array[$i]; }
if($value!=0){ $number_to_words_string.= $words["$value"]." "; }
if($i==1 && $value!=0){ $number_to_words_string.= "Crores "; }
if($i==3 && $value!=0){ $number_to_words_string.= "Lakhs "; }
if($i==5 && $value!=0){ $number_to_words_string.= "Thousand "; }
if($i==6 && $value!=0){ $number_to_words_string.= "Hundred & "; }
}
if($number_length>9){ $number_to_words_string = "Sorry This does not support more than 99
Crores"; }
return ucwords(strtolower("Indian Rupees ".$number_to_words_string)." Only.");
}
echo convertNumberToWordsForIndia("987654321");
//Output ==> Indian Rupees Ninty Eight Crores Seventy Six Lakhs Fifty Four Thousand Three
Hundred & Twenty One Only.
?>
----
Server IP: 69.147.83.197
Probable Submitter: 123.201.255.170
----
Manual Page -- http://www.php.net/manual/en/function.number-format.php
Edit -- https://master.php.net/note/edit/108532
Del: integrated -- https://master.php.net/note/delete/108532/integrated
Del: useless -- https://master.php.net/note/delete/108532/useless
Del: bad code -- https://master.php.net/note/delete/108532/bad+code
Del: spam -- https://master.php.net/note/delete/108532/spam
Del: non-english -- https://master.php.net/note/delete/108532/non-english
Del: in docs -- https://master.php.net/note/delete/108532/in+docs
Del: other reasons-- https://master.php.net/note/delete/108532
Reject -- https://master.php.net/note/reject/108532
Search -- https://master.php.net/manage/user-notes.php