文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php汉字如何转阿拉伯数

2023-06-25 12:30

关注

这篇文章主要介绍“php汉字如何转阿拉伯数”,在日常操作中,相信很多人在php汉字如何转阿拉伯数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php汉字如何转阿拉伯数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

php汉字转阿拉伯数的方法:1、创建一个PHP示例文件;2、初始化一个数组;3、将字符串按单位切分;4、将分组后的字符串转化成数字并乘以单位即可。

php汉字如何转阿拉伯数

本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑

php 汉字怎么转阿拉伯数?

php中文转阿拉伯数字

面试题,当时写了一个漏洞百出,被人鄙视了,所以回来用一上午写了一个,自己测试了一下,好像还可以。

思路

如中文数字

七百七十八万亿四千七百二十亿七千五百七十万四千四百八十六

如果把红色文字看做单位,那么用这些单位分割后,其他部分都是个十百千的数字。把这些数字乘以其单位求和,就是结果了。

代码

function ch3num($str){    //单位数组用于循环遍历,单位顺序从大到小    $c = [        '万亿'=>1000000000000,        '亿' => 100000000,        '万' => 10000,    ];    //中文替换数字规则,零没什么卵用;所以去掉    $b = [        '一' =>1,        '二' =>2,            '三' =>3,        '四' =>4,        '五' =>5,        '六' =>6,        '七' =>7,        '八' =>8,        '九' =>9,        '零' =>'',    ];    //替换数字    $str =  str_replace(array_keys($b), array_values($b), $str);    //结果 7百7十8万亿4千7百2十亿7千5百7十万4千4百8十  //如果字符串以十开头,前边加1    if(mb_strpos($str, '十' ,0 ,'utf-8') === 0)        $str = '1'.$str;          //初始化一个数组    $arr[] = array(        'str'    => $str, //字符串        'unit'  => 1,     //单位    );    //将字符串按单位切分    foreach ($c as $key => $value) {        $brr = [];        foreach ($arr as $item) {            if(strpos($item['str'], $key)){                $sun = explode($key, $item['str'],2);                $brr[] = [                    'str' => $sun[0],                    'unit' => $value,                ];                $brr[] = [                    'str' => $sun[1],                    'unit' => $item['unit'],                ];            }else{                $brr[] = $item;            }        }        $arr = $brr;    }        //遍历求和    $sum = 0;    foreach ($arr as $item) {        $sum += getNum($item['str'],$item['unit']);    }    return $sum;}//将分组后的字符串转化成数字,并乘以单位function getNum($str,$st){    //倍数    $a = [        '千'=>1000,        '百'=>100,        '十'=>10    ];    //开始值    $num = 0;    //当前值所在位数    $step = 1;    //单位    $un = 1;    $arr =  preg_split('/(?<!^)(?!$)/u', $str);    while (count($arr)) {        $m = array_pop($arr);        //如果是位数;更新倍数        if(!empty($a[$m])){            $step = $a[$m];        }        if(is_numeric($m)){            $num += $m * $step;        }    }    return $num * $st;}

到此,关于“php汉字如何转阿拉伯数”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯