ในบางระบบเช่นระบบพิมพ์ใบเสร็จผ่านเว็บไซต์จำเป็นต้องมีการใส่ตัวเลขที่เป็นข้อความภาษาไทยด้วย ในบทความนี้จะนำเสนอการเขียน function ในการแปลงตัวเลขเป็นคำพูด หรือข้อความภาษาไทยโดยใช้ ภาษา PHP ดังนี้
<?php
function to_text($num)
{
$num_len=strlen($num);
$out_put="";
$i;
$arr=[];
$temp=1;
for($i=0;$i<$num_len;$i++)
{
$arr[count($arr)]=$temp;
$temp++;
if($temp==7)
{
$temp=1;
}
}
for($i=0;$i<count($arr);$i++)
{
$out_put.=get_num_value(substr($num,$i,1)).get_main_value($arr[(count($arr)-1)-$i],substr($num,$i,1));
$main_pos=(count($arr)-1)-$i;
if ( ( ($main_pos %6)==0)&&($main_pos!=0) )
{
$out_put.="ล้าน";
}
}
$out_put=str_replace("สองสิบ","ยี่สิบ",$out_put);
$out_put=str_replace("สิบหนึ่ง","สิบเอ็ด",$out_put);
$out_put=str_replace("หนึ่งสิบ","สิบ",$out_put);
$out_put=str_replace("สองสิบ","ยี่สิบ",$out_put);
return $out_put;
}
function get_num_value($i)
{
if ($i==1)
{
return "หนึ่ง";
}
if ($i==2)
{
return "สอง";
}
if ($i==3)
{
return "สาม";
}
if ($i==4)
{
return "สี่";
}
if ($i==5)
{
return "ห้า";
}
if ($i==6)
{
return "หก";
}
if ($i==7)
{
return "เจ๊ด";
}
if ($i==8)
{
return "แปด";
}
if ($i==9)
{
return "เก้า";
}
if ($i=="0")
{
return "";
}
}
function get_main_value($i,$val)
{
if ($val=="0")
{
return "";
}
if ($i==1)
{
return "";
}
if ($i==2)
{
return "สิบ";
}
if ($i==3)
{
return "ร้อย";
}
if ($i==4)
{
return "พัน";
}
if ($i==5)
{
return "หมื่น";
}
if ($i==6)
{
return "แสน";
}
}
//เรียกใช้ function แปลงตัวเลขเป็นข้อความภาษาไทย
echo number_format(98745621)."=>".to_text("98745621");
?>
ผลลัพธ์ที่ได้คือ