当前位置:首页 > 技术文档 > 正文内容

PHP数字转换中文汉字

admin10年前 (2015-11-17)技术文档1639
function number2Chinese($num, $m = 1) {
switch($m) {
case 0:
$CNum = array(
array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'),
array('','拾','佰','仟'),
array('','萬','億','萬億')
);
break;
default:
$CNum = array(
array('零','一','二','三','四','五','六','七','八','九'),
array('','十','百','千'),
array('','万','亿','万亿')
);
break;
}
// $cNum = array('零','一','二','三','四','五','六','七','八','九');
 
if (is_integer($num)) {
$int = (string)$num;
} else if (is_numeric($num)) {
$num = explode('.', (string)floatval($num));
$int = $num[0];
$fl  = isset($num[1]) ? $num[1] : FALSE;
}
// 长度
$len = strlen($int);
// 中文
$chinese = array();
 
// 反转的数字
$str = strrev($int);
for($i = 0; $i<$len; $i+=4 ) {
$s = array(0=>$str[$i], 1=>$str[$i+1], 2=>$str[$i+2], 3=>$str[$i+3]);
$j = '';
// 千位
if ($s[3] !== '') {
$s[3] = (int) $s[3];
if ($s[3] !== 0) {
$j .= $CNum[0][$s[3]].$CNum[1][3];
} else {
if ($s[2] != 0 || $s[1] != 0 || $s[0]!=0) {
$j .= $CNum[0][0];
}
}
}
// 百位
if ($s[2] !== '') {
$s[2] = (int) $s[2];
if ($s[2] !== 0) {
$j .= $CNum[0][$s[2]].$CNum[1][2];
} else {
if ($s[3]!=0 && ($s[1] != 0 || $s[0]!=0) ) {
$j .= $CNum[0][0];
}
}
}
// 十位
if ($s[1] !== '') {
$s[1] = (int) $s[1];
if ($s[1] !== 0) {
$j .= $CNum[0][$s[1]].$CNum[1][1];
} else {
if ($s[0]!=0 && $s[2] != 0) {
$j .= $CNum[0][$s[1]];
}
}
}
// 个位
if ($s[0] !== '') {
$s[0] = (int) $s[0];
if ($s[0] !== 0) {
$j .= $CNum[0][$s[0]].$CNum[1][0];
} else {
// $j .= $CNum[0][0];
}
}
$j.=$CNum[2][$i/4];
array_unshift($chinese, $j);
}
$chs = implode('', $chinese);
if ($fl) {
$chs .= '点';
for($i=0,$j=strlen($fl); $i<$j; $i++) {
$t = (int)$fl[$i];
$chs.= $str[0][$t];
}
}
return $chs;
}


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:http://yuyunhe.cn/index.php/post/119.html

分享给朋友:

“PHP数字转换中文汉字” 的相关文章

php 获取当前网址

function get_url() {     $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER...

php无限分类-总结

//php代码部分  <?php         header('Content-Type:text/html;charset=utf-8');    ...

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?先上代码进行java时间转换成unix timestampimport java.text.DateFormat;   import java.text.ParseExceptio...

PHP数组和Json之间的转换

        之所以要用到Json,很多时候是因为使用ajax对象时,程序与JS函数之间的数据交互。因为JS不认识PHP中的数组,PHP也不认识JS中的数组或对象。Json很好的解决了这个问题。Json简介  ...

ThinkPHP实现多数据库连接的解决方法

这篇文章主要介绍了ThinkPHP实现多数据库连接的解决方法,需要的朋友可以参考下ThinkPHP实现连接多个数据的时候,如果数据库在同一个服务器里的话只需要这样定义模型:?123class MembersModel extends Model{protected $trueTableName =...

PHP开发之THINKPHP多表联合查询操作的三种方法

THINKPHP 中关联查询(多表查询)可以使用 table() 方法或和join方法,请看示例: 联合查询         1、原生查询    &...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。