博客
关于我
PHP函数操作数字和汉字互转(100以内)
阅读量:793 次
发布时间:2023-03-01

本文共 2387 字,大约阅读时间需要 7 分钟。

function numDatabase() {    $numarr = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100);    return $numarr;}function hzDatabase() {    $hanziarr = array("一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一","三十二","三十三","三十四","三十五","三十六","三十七","三十八","三十九","四十","四十一","四十二","四十三","四十四","四十五","四十六","四十七","四十八","四十九","五十","五十一","五十二","五十三","五十四","五十五","五十六","五十七","五十八","五十九","六十","六十一","六十二","六十三","六十四","六十五","六十六","六十七","六十八","六十九","七十","七十一","七十二","七十三","七十四","七十五","七十六","七十七","七十八","七十九","八十","八十一","八十二","八十三","八十四","八十五","八十六","八十七","八十八","八十八","九十","九十一","九十二","九十三","九十四","九十五","九十六","九十七","九十八","九十九","一百");    return $hanziarr;}function num2hanzi($str) {    $numarr = numDatabase();    $hanziarr = hzDatabase();    preg_match('/[0-9]+/',$str,$t);    $num = intval($t[0]);    $rstr = '';    if(in_array($num,$numarr)) {        foreach($numarr as $k => $v) {            if($v == $num) {                $kk = $k;            }        }        $rstr = str_replace($num, $hanziarr[$kk], $str);    }    return $rstr;}function hanzi2num($str) {    $numarr = numDatabase();    $hanziarr = hzDatabase();    foreach($hanziarr as $k => $v) {        if(strpos($str, $v) !== false) {            $rstr = str_replace($v, $numarr[$k], $str);        }    }    return $rstr;}function zhuan($str) {    $result = '';    $n = array('0','1','2','3','4','5','6','7','8','9');    $zi = array('一','二','3','4','5','6','7','8','9','十');    foreach($zi as $k => $v) {        if(strpos($str, $n[$k]) !== false) {            $result = num2hanzi($str);        }        if(strpos($str, $v) !== false) {            $result = hanzi2num($str);        }    }    return $result;}// 应用举例$str = '56';$r = zhuan($str);echo $r;$str = "八十二";$r = zhuan($str);echo $r;

以上代码提供了数字与汉字之间的转换功能,包含以下主要功能:

  • numDatabase() 函数用于获取数字数组
  • hzDatabase() 函数用于获取汉字数组
  • num2hanzi() 函数用于将数字转换为汉字
  • hanzi2num() 函数用于将汉字转换为数字
  • zhuan() 函数用于自动检测并进行转换
  • 代码实现了数字与汉字的双向转换功能,适用于文本处理和数据转换场景。通过正则表达式和数组查找,实现了高效的字符串替换功能。

    示例使用:

    $str = '56';$r = zhuan($str); // 输出: 五十六$str = "八十二";$r = zhuan($str); // 输出: 82

    转载地址:http://ectfk.baihongyu.com/

    你可能感兴趣的文章
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    netsh advfirewall
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty 异步任务调度与异步线程池
    查看>>
    Netty中集成Protobuf实现Java对象数据传递
    查看>>
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>