You are currently browsing the archives of 乱七八糟 .

php 阿拉伯数字转换成中文数字

<?php
/**
* @desc 阿拉伯数字转换成中文数字
*/
function num2Chinese($num)
{
static $_Chinese=array(’零’,'一’,'二’,'三’,'四’,'五’,'六’,'七’,'八’,'九’);
static $_List=array(’零’,'十’,'百’,'千’,'万’,'十万’,'百万’,'千万’,'亿’,'十亿’,'百亿’,'千亿’,'万亿’);
$lastLength=strlen($_List[0]);
$lastLength=0-$lastLength;
$num +=0;
$num=explode(’.',$num);

$num[0]=strrev($num[0]);
$num_length=strlen($num[0]);
$tmpArray=array();
$IF_LAST_ZERO=0;
$tmp=0;
$lastWord=”;
$lastKey=”;
for ($i=0;$i<$num_length;++$i)
{
$tmp=intval($num[0][$i]);
if($tmp==0)
{
if($IF_LAST_ZERO==0){
$tmpArray[]=($i==0?($num_length==1?’零’:”):’零’);
$IF_LAST_ZERO=1;
}
}
else
{
if($i==0)
$tmpArray[]=$_Chinese[$tmp];
else
{
$lastKey=substr($_List[$i],$lastLength);
if($lastKey==$lastWord){
$tmpArray[]=substr($_Chinese[$tmp].$_List[$i],0,$lastLength);
}
else{
$tmpArray[]=$_Chinese[$tmp].$_List[$i];
$lastWord=$lastKey;
}
}
$IF_LAST_ZERO=0;
}
}
$tmpArray=array_reverse($tmpArray);
if($num_length==2 && substr($tmpArray[0],0,0-$lastLength)==’一’)
$tmpArray[0]=substr($tmpArray[0],0-$lastLength);
if(sizeof($num)>1)
{
$tmpArray[]=’点’;
$num_length=strlen($num[1]);
for ($i=0;$i<$num_length;++$i)
{
$tmp=intval($num[1][$i]);
$tmpArray[]=$_Chinese[$tmp];
}
}

return join(”,$tmpArray);
}
$aa = num2Chinese(139087.0258);
echo $aa;
?>

Posted by shuck on Mar 3rd 2008 | Filed in php技术 | 评论(0)