PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

สร้างฟังก์ชัน php แปลงตัวเลข เป็นข้อความตัวอักษร ภาษาไทย

16 October 2009 By


PHP Code ฟังก์ชัน

<?php   
function num2wordsThai($num){   
	$num=str_replace(",","",$num);
	$num_decimal=explode(".",$num);
	$num=$num_decimal[0];
    $returnNumWord;   
    $lenNumber=strlen($num);   
    $lenNumber2=$lenNumber-1;   
    $kaGroup=array("","สิบ","ร้อย","พัน","หมื่น","แสน","ล้าน","สิบ","ร้อย","พัน","หมื่น","แสน","ล้าน");   
    $kaDigit=array("","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ต","แปด","เก้า");   
	$kaDigitDecimal=array("ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ต","แปด","เก้า");   
    $ii=0;   
    for($i=$lenNumber2;$i>=0;$i--){   
        $kaNumWord[$i]=substr($num,$ii,1);   
        $ii++;   
    }   
    $ii=0;   
    for($i=$lenNumber2;$i>=0;$i--){   
        if(($kaNumWord[$i]==2 && $i==1) || ($kaNumWord[$i]==2 && $i==7)){   
            $kaDigit[$kaNumWord[$i]]="ยี่";   
        }else{   
            if($kaNumWord[$i]==2){   
                $kaDigit[$kaNumWord[$i]]="สอง";        
            }   
            if(($kaNumWord[$i]==1 && $i<=2 && $i==0) || ($kaNumWord[$i]==1 && $lenNumber>6 && $i==6)){   
                if($kaNumWord[$i+1]==0){   
                    $kaDigit[$kaNumWord[$i]]="หนึ่ง";      
                }else{   
                    $kaDigit[$kaNumWord[$i]]="เอ็ด";       
                }   
            }elseif(($kaNumWord[$i]==1 && $i<=2 && $i==1) || ($kaNumWord[$i]==1 && $lenNumber>6 && $i==7)){   
                $kaDigit[$kaNumWord[$i]]="";   
            }else{   
                if($kaNumWord[$i]==1){   
                    $kaDigit[$kaNumWord[$i]]="หนึ่ง";   
                }   
            }   
        }   
        if($kaNumWord[$i]==0){   
			if($i!=6){
	            $kaGroup[$i]="";   
			}
        }   
        $kaNumWord[$i]=substr($num,$ii,1);   
        $ii++;   
        $returnNumWord.=$kaDigit[$kaNumWord[$i]].$kaGroup[$i];   
    }      
	if(isset($num_decimal[1])){
		$returnNumWord.="จุด";
		for($i=0;$i<strlen($num_decimal[1]);$i++){
				$returnNumWord.=$kaDigitDecimal[substr($num_decimal[1],$i,1)];	
		}
	}		
    return $returnNumWord;   
}   
?>  

การใช้งาน และผลลัพธิ์

<?php
echo num2wordsThai("25010");
echo "<br>";
// สองหมื่นห้าพันสิบ

// การใช้งาน รองรับตัวเลขมี comma 
echo num2wordsThai("1,450");
echo "<br>";
// หนึ่งพันสี่ร้อยห้าสิบ

// รองรับ จุดทศนิยม  
echo num2wordsThai("250.10");
echo "<br>";
// สองร้อยห้าสิบจุดหนึ่งศูนย์

//รองรับค่าตัวเลข มากกว่าแสนล้าน
echo num2wordsThai("500,001,001,000.10");
echo "<br>";
// ห้าแสนหนึ่งล้านหนึ่งพันจุดหนึ่งศูนย์
?>

Tags:: แปลงตัวเลข ภาษาไทย php





URL สำหรับอ้างอิง