> php教程 > PHP源码 > 中文数字转阿拉伯数字

中文数字转阿拉伯数字

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-06 09:32:30
원래의
1018명이 탐색했습니다.
跳至 [1] [全屏预览]
function strToNum($str){
    $arr1=['零'=>'', '一'=>1, '二'=>2, '三'=>3, '四'=>4, '五'=>5, '六'=>6, '七'=>7, '八'=>8, '九'=>9];
    $arr2=['亿'=>100000000,'千万'=>10000000,'百万'=>1000000,'十万'=>100000,'万'=>10000,'千'=>1000,'百'=>100,'十'=>10];
    preg_match_all('/(零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿)+/i',$str,$result);
    if(empty($result[0][0])) return $str;
    else $tmp=$result[0][0];
    $tmp=str_replace(array_keys($arr1), array_values($arr1), $tmp);
    foreach ($arr2 as $k => $v) {
    	if(strlen($tmp)==1) $tmpArr[1]=$tmp;
    	else if(strpos($tmp, $k)!==false){
    		$tmpArr[$v]=getFromStr('',$k,$tmp);
    		$tmp=getFromStr($k,'',$tmp);
    		if(strlen($tmp)==1) $tmpArr[1]=$tmp;
    	}
    }
   	if(is_array($tmpArr)){
   		$num=0;
   		foreach ($tmpArr as $k => $v) {
   			if(empty($v)) $v=1;
   			$num+=$k*$v;
   		}
   	}

    if(!empty($num)) return str_replace($result[0][0], $num, $str);else return $str;
}

function getFromStr($start,$end,$str)
{
    if(!empty($start)) $str=substr($str,strpos($str,$start)+strlen($start) ,strlen($str)-strlen($start)-strpos($str,$start));
    if(!empty($end)) $str=substr($str,0,strpos($str,$end));
    return $str;
}
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿