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


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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
php一个找二层目录的小东东
Aug 02 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
PHP中常用的输出函数总结
Sep 22 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php浏览历史记录的方法
Mar 10 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 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设计模式之访问者模式
2016/09/23 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
Prototype Date对象 学习
2009/07/12 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
如何在Python中编写并发程序
2016/02/27 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
机关单位动员会主持词
2014/03/20 职场文书
《大海那边》教学反思
2014/04/09 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
公司员工辞职信范文
2015/05/12 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
python实现局部图像放大
2021/11/17 Python