加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

将数字字符串转换成数字

发布时间:2020-12-15 00:33:41 所属栏目:C语言 来源:网络整理
导读:$digit = ['亿' = 100000000,'万' = 10000];$data_explode = [];$cardinal = 0;foreach ($digit as $key = $value) { if (strpos($data,$key)) { $data = explode($key,$data); $data_explode[$key] = $data[0]; $data = $data[1]; } if ($key == '万') { $d
$digit = ['亿' => 100000000,'万' => 10000];
$data_explode = [];
$cardinal = 0;
foreach ($digit as $key => $value) {
    if (strpos($data,$key)) {
        $data = explode($key,$data);
        $data_explode[$key] = $data[0];
        $data = $data[1];
    }

    if ($key == '万') {
        $data_explode['个'] = $data;
    }
}

$result = 0;
foreach ($data_explode as $key => $value) {
    $data = ltrim($value,'零');

    if (strpos($data,'零')) { //存在零 
        $data = str_replace('零','',$data);
    }

    $cardinal = 1;
    $int = 0;
    $qian = mb_strpos($data,'千');
    if ($qian !== false) { //存在千
        $refer = mb_substr($data,$qian - 1,1,'utf8');
        $refer = in_array($refer,$str) * 1000;
        $int += $refer;
        $data = mb_substr($data,1 + 1);
    }
    $bai = mb_strpos($data,'百');
    if ($bai !== false) { //存在百
        $refer = mb_substr($data,$bai - 1,'utf8');
        $refer = array_search($refer,$str) * 100;
        $int += $refer;
        $data = mb_substr($data,1 + 1);
    }
    $shi = mb_strpos($data,'十');
    if ($shi !== false) { //存在十
        $refer = mb_substr($data,$shi - 1,$str) * 10;
        $int += $refer;
        $data = mb_substr($data,1 + 1);
    }

    if ($data) {
        $refer = array_search($data,$str);
        $int += $refer;
    }

    $result += $int * (isset($digit[$key]) ? $digit[$key] : 1);
} 
echo $result;

}

str2int('一亿零一百');
// str2int('一千零二十三');
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读