In website development, we often need to convert some Arabic numerals into Chinese numerals or convert Chinese numerals into Arabic numerals. In PHP, functions for converting to Chinese numbers already exist, but there are relatively few functions for converting to Arabic numbers. Therefore, this article will introduce a PHP function to convert Chinese numbers into Arabic numerals.
First of all, we need to clarify the problems that may arise during the conversion process. The correspondence between Chinese numerals and Arabic numerals is not one-to-one, that is, the same Chinese numeral can correspond to multiple Arabic numerals, for example, "千" can correspond to "1000" or "千". Therefore, when converting Chinese numerals to Arabic numerals, certain processing needs to be performed first, and then the conversion is performed based on the processed string.
Based on the above issues, we can design a conversion function, the main process of which is as follows:
(1) Process Chinese numbers is a string, ensure that each number is converted into an Arabic numeral;
(2) Judge the processed string character by character, if it is an Arabic numeral, put it into a new string, if it is other characters Then perform conversion;
(3) Finally get the converted Arabic numeral string.
The specific implementation code is as follows:
function cn2arabic($cnStr) { $cnArr = array('零','一','二','三','四','五','六','七','八','九'); $arabicArr = array('0','1','2','3','4','5','6','7','8','9'); $str = str_replace($cnArr, $arabicArr, $cnStr); $resultStr = ""; $len = strlen($str); for ($i=0; $i<$len; $i++) { if (is_numeric($str[$i])) { $resultStr .= $str[$i]; } else { switch ($str[$i]) { case '十': $resultStr .= '1'; if ($i == $len-1 || !is_numeric($str[$i+1])) { $resultStr .= '0'; } break; case '百': $resultStr .= '00'; break; case '千': $resultStr .= '000'; break; case '万': $resultStr = (intval($resultStr)*10000).""; break; default: break; } } } return intval($resultStr); }
In the above code, we first define two arrays, one is the Chinese digit array $cnArr, and the other is the corresponding Arabic digit array $arabicArr . Next, we use the str_replace function in PHP to convert Chinese numbers into Arabic numerals, so that each number in the string is converted into Arabic numerals. Then, we judge it character by character. If it is an Arabic numeral, it is thrown into a new string. If it is other characters, it is converted according to its different characteristics. Among them, the Arabic numerals corresponding to "ten", "hundred", and "thousand" are 10, 100, and 1,000 respectively, while the Arabic numerals corresponding to "ten thousand" are 10,000.
Using this function is very simple, you only need to pass in a Chinese numeric string. For example, if we need to convert "one thousand two hundred and thirty-four" into Arabic numerals, then we only need to execute the following code:
echo cn2arabic('一千二百三十四');
The output result is:
1234
So far, we have written A simple PHP function can convert Chinese numbers into Arabic numerals. However, it should be noted that this function may not necessarily be able to handle various complex Chinese number conversions. Careful verification is required when using it to ensure the accuracy of the conversion.
The above is the detailed content of php convert arabic numeral function. For more information, please follow other related articles on the PHP Chinese website!