//数字转汉字
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;
}

  

PHP- 数字转汉字的更多相关文章

  1. JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)

    验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数 ...

  2. scala练手之数字转汉字小工具

    输入数字,转换成汉字,在统计数据量时很好用,而输入数字转成大写汉字,可以用于填写收据报销单哦 下载链接 https://pan.baidu.com/s/1nv3Ci6l 效果图如下: 直接上代码 ob ...

  3. javascript 使用数组+循环+条件实现数字转换为汉字的简单方法。

    这几天,博主碰到了几道关于数字转汉字的javascript算法题,在网上找了很多的答案,发现都有点复杂,于是我决定自己写一篇关于这种算法题的简单解法,以下是博主自己的见解,有不足的地方请多指教. 接下 ...

  4. php 数字变汉字

    //数字变汉字 function getTheWord($num) { $arr_n = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', ...

  5. Oracle中对数字加汉字的排序(完好)

    之前写过一篇 Oracle中对数字加汉字的排序以及REGEXP_SUBSTR介绍 后来在开发的过程中又遇到相似问题.数据不一样了,按之前的使用方法是不适用的. 之前的是数字在前汉字在后,最基本的差别是 ...

  6. PHP 数字转汉字函数

    /** * 数字转汉字描述 */ function numToStr($num) { // 判断正确数字 if (!preg_match('/^(\d*)(\.\d+)?$/', $num)) ret ...

  7. 如果输入的不是英文字母或者数字或者汉字,则返回false

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_C ...

  8. js只能输入数字、汉字、字母等正则匹配

    只能输英文:<input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 只 ...

  9. PHP 汉字数字互转(100以内)| PHP 汉字转数字 | PHP数字转汉字

    <?php function numDatabase(){ $numarr =array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2 ...

  10. EXCEL计算数字、汉字、英文单元格的计数

    1.数字COUNT(A1:A100)2.汉字{=SUMPRODUCT(IF(LEN(A1:A100)LENB(A1:A100),1,0)*1)}3.英文{=SUMPRODUCT(IF(ISTEXT(A ...

随机推荐

  1. jQuery Cycle Plugin的使用

    jQuery幻灯片效果或者Slideshow效果当中如果不考虑touch效果的话,jQuery Cycle插件实在是太强大了,各种高大上的动画效果,如果想加上touch效果可以结合本blog介绍的wi ...

  2. Codeforces 567C Geometric Progression(思路)

    题目大概说给一个整数序列,问里面有几个包含三个数字的子序列ai,aj,ak,满足ai*k*k=aj*k=ak. 感觉很多种做法的样子,我想到这么一种: 枚举中间的aj,看它左边有多少个aj/k右边有多 ...

  3. NUC_HomeWork1 -- POJ1088(DP)

    D - 滑雪 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Mic ...

  4. [Word]将word文件中的软回车符[↓]替换为硬回车符

    Ctrl+H,替换对话框 搜索:^l 替换:^p 确定替换即可.

  5. 比较好用的php函数

    eval(); $b = 2;$c = "+";$d = 3;eval("\$a=$b$c$d;"); //字符串相加,取值 (加减乘除都行) str_repl ...

  6. 推荐一些mac 系统软件

    1. rightzoom http://www.macupdate.com/app/mac/30591/right-zoom 最大化快捷键设置 2. blotter 桌面日历,透明 3. AquaTe ...

  7. 洛谷 P1305 新二叉树 Label:字符串的输出总是有惊喜

    题目描述 输入一串完全二叉树,用遍历前序打出. 输入输出格式 输入格式: 第一行为二叉树的节点数n. 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式: 前序排列的完 ...

  8. linux下tar命令详解

     linux下tar命令详解    tar是Linux环境下最常用的备份工具之一.tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件.ta ...

  9. 处理海量数据的高级排序之——堆排序(C++)

    在面对大数据量的排序时(100W以上量级数据),通常用以下三种的排序方法效率最高O(nlogn):快速排序.归并排序,堆排序.在这个量级上,其他冒泡,选择,插入等简单排序已经无法胜任,效率极低,跟前面 ...

  10. iOS 中实现功能引导页面

    // //  guideView.h //  07-功能引导-李洪强 // //  Created by vic fan on 16/1/4. //  Copyright © 2016年 李洪强. A ...