|
php convert number to thai money |
โค้ดแปลงตัวเลขเป็นจำนวนเงิน ภาษาไทย
ผมสังเกตุเห็นว่าในบอร์ดมีคนถามเรื่องนี้มากพอสมควร
ซึ่งก็มีคนตอบไปบ่อยๆพอกับการถาม
และผมก็มีความจำเป็นต้องงานโค้ดตัวนี้บ่อยๆเช่นเดียวกัน
แต่ยังไม่มีใครมาเขียนไว้ที่นี่ ค้นหาในเว็บนี้ก็เจอครับ แต่ยากนิดหน่อย
จึงถือโอกาสนี้ นำมาเผยแพร ให้กับเพื่อนๆ ชาว Thaicreate ให้หาดูกันง่ายๆครับ
โค้ด
โค้ดนี้ประกอบด้วย 2 ฟังก์ชั่น นะครับ ผมแยกออกมาเผื่อใครที่อยากจะใช้แปลงตัวเลขเป็นตัวหนังสือเฉยๆ ไม่ได้แปลงเป็นค่าเงินครับ
numtothaistring($num) ตัวนี้ ถ้าใครเข้าใจหลักการ ก็ สามารถนำไปดัดแปลงเป็น การแปลงตัวเลขให้เป็นตัวหนังสือภาษาอังกฤษได้ครับ
Code php
<?
function numtothaistring($num)
{
$return_str = "";
$txtnum1 = array('','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า');
$txtnum2 = array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$num_arr = str_split($num);
$count = count($num_arr);
foreach($num_arr as $key=>$val)
{
if($count > 1 && $val == 1 && $key ==($count-1))
$return_str .= "เอ็ด";
else
$return_str .= $txtnum1[$val].$txtnum2[$count-$key-1];
}
return $return_str ;
}
function numtothai($num)
{
$return = "";
$num = str_replace(",","",$num);
$number = explode(".",$num);
if(sizeof($number)>2){
return 'รูปแบบข้อมุลไม่ถูกต้อง';
exit;
}
$return .= numtothaistring($number[0])."บาท";
$stang = intval($number[1]);
if($stang > 0)
$return.= numtothaistring($stang)."สตางค์";
else
$return .= "ถ้วน";
return $return ;
}
?>
การใช้งาน
Code php
<?=numtothai("1234561.50")?>
<?=numtothai("1,234,561.50")?>
// or
<?
$str = numtothai("1234561.50");
//$str = numtothai("1,234,561.50");
echo $str
?>
output
หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเอ็ดบาทห้าสิบสตางค์
ปล. ตอนนี้รองรับแค่หลักล้านก่อนนะครับ มีเวลาจะปรับปรุงให้รองรับได้มากกว่านี้ครับ
|
|
|
|
|
|