一个阿拉伯数字转中文数字的函数


Posted in PHP onOctober 09, 2006

最近因需要,写了个“阿拉伯数字转中文数字的函数”。搜索了精华区只见到一个类似的。
感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改
<?php
function ch_num($num,$mode=true) {
  $char = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
  $dw = array("","拾","佰","仟","","?","?|","兆");
  $dec = "?";
  $retval = "";

  if($mode)
    preg_match_all("/^0*(\d*)\.?(\d*)/",$num, $ar);
  else
    preg_match_all("/(\d*)\.?(\d*)/",$num, $ar);

  if($ar[2][0] != "")
    $retval = $dec . ch_num($ar[2][0],false); //如果有小数,先递归处理小数
  if($ar[1][0] != "") {
    $str = strrev($ar[1][0]);
    for($i=0;$i<strlen($str);$i++) {
      $out[$i] = $char[$str[$i]];
      if($mode) {
        $out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";
        if($str[$i]+$str[$i-1] == 0)
          $out[$i] = "";
        if($i%4 == 0)
          $out[$i] .= $dw[4+floor($i/4)];
      }
    }
    $retval = join("",array_reverse($out)) . $retval;
  }
  return $retval;
}

//echo ch_num("12345006789001.123");
//echo ch_num("880079.1234");
echo ch_num("300045.0123");

?>

PHP 相关文章推荐
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
如何修改和添加Apache的默认站点目录
Jul 05 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
php while循环控制的简单实例
May 30 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
Zend Framework常用校验器详解
Dec 09 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
PHP与已存在的Java应用程序集成
Oct 09 #PHP
使用PHP模拟HTTP认证
Oct 09 #PHP
在PHP中使用XML
Oct 09 #PHP
使用PHP维护文件系统
Oct 09 #PHP
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 #PHP
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 #PHP
PHP4之真OO
Oct 09 #PHP
You might like
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
vue中的inject学习教程
2019/04/24 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现的简单抽奖系统实例
2015/05/22 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
django的settings中设置中文支持的实现
2019/04/28 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
降低python版本的操作方法
2020/09/11 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
经典优秀个人求职自荐信格式
2013/09/25 职场文书
手机业务员岗位职责
2013/12/13 职场文书
《藏戏》教学反思
2014/02/11 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
无线电通信名词解释
2022/02/18 无线电
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers