将数字字符串转换成数字

PHP">$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('一千零二十三');
?>

相关文章

这个问题和curl无法访问https资源是类似的,现在curl可以访问https资源,但是使用pecl安装扩展的时候不行...
在浏览器输入chrome://flags/回车,找到Omnibox UI Hide Steady-State URL Scheme and Trivial Subdoma...
方法一: 我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc。...
中文的windows下的cmd默认使用GBK的编码,敲代码时,页面使用的是UTF-8(65001),而powershell控制台默认...
提示错误: arm-linux-gcc:Command not found PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 a...
我在Graph API开发中用的最多的测试工具就是Graph Explore,这个是微软开发的网页版的Graph API的测试工...