Home >Backend Development >PHP Problem >How to convert one digit to uppercase in php

How to convert one digit to uppercase in php

PHPz
PHPzOriginal
2023-03-21 09:36:081485browse

In PHP, converting numbers to uppercase is a relatively simple matter. This requirement is common, for example, when you need to display numerical amounts in uppercase on an invoice or statement. Here is a PHP implementation.

Implementation process:

First, you need to know the names of each digit of the number. For example:

The number "0" is called "zero";

The number "1" is called "one";

The number "2" is called The number "two" is called "two";

The number "3" is called "three";

The number "4" is called "four";

The number "5" It is called "五";

The number "6" is called "Lu";

The number "7" is called "Qi";

The number "8" " is called "eight";

The number "9" is called "nine".

Then, you need to know the meaning of each digit of the number. Generally speaking, the method of converting numbers to uppercase is to first decompose the number from the ones to the high, and convert each digit into an uppercase letter, plus the corresponding unit, such as "ten thousand", "hundred million", " Thousands” and so on. What needs to be noted in this process is the use of "zero".

Next, we can first stringify the required number to make it a string type. We can use PHP's built-in str_split() function to split the string by digits and then sort it in reverse order. Then use the switch statement to make a judgment, convert it to uppercase and add the corresponding unit, and store it in an array. Finally, add all the numbers in the array.

Sample code:

function convert_num_to_upper($num){
    $str = strval($num); // 数字转字符串
    $len = strlen($str);

    $tmp_arr = array();
    switch ($len){
        case 2:
            $tmp_arr[2] = "拾";
            break;
        case 3:
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;
        case 4:
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;
        case 5:
            $tmp_arr[5] = "万";
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;

        case 6:
        case 7:
        case 8:
            $tmp_arr[6] = "拾万";
            $tmp_arr[5] = "万";
            $tmp_arr[4] = "仟";
            $tmp_arr[3] = "佰";
            $tmp_arr[2] = "拾";
            break;

        case 9:
            $tmp_arr[9] = "亿";
            $tmp_arr[8] = "仟万";
            $tmp_arr[7] = "拾万";
            $tmp_arr[6] = "万";
            $tmp_arr[5] = "仟";
            $tmp_arr[4] = "佰";
            $tmp_arr[3] = "拾";
            break;

        default:
            break;
    }


    $result_arr = array();
    $num_arr = str_split($str);
    rsort($num_arr);

    $last_zero = false; // 上一位数是否为零,初始值为false
    foreach ($num_arr as $key => $num){
        switch ($num){
            case "0":
                if ($last_zero == true){
                    continue;
                } else {
                    $last_zero = true;
                    $result_arr[] = "零";
                }
                break;

            default:
                $last_zero = false;
                $result_arr[] = $this->num_to_upper($num) . $tmp_arr[$key+1];
                break;
        }
    }

    $result = implode("", $result_arr);

    return $result;
}


function num_to_upper($num){
    switch ($num){
        case "0":
            return "零";
            break;
        case "1":
            return "壹";
            break;
        case "2":
            return "贰";
            break;
        case "3":
            return "叁";
            break;
        case "4":
            return "肆";
            break;
        case "5":
            return "伍";
            break;
        case "6":
            return "陆";
            break;
        case "7":
            return "柒";
            break;
        case "8":
            return "捌";
            break;
        case "9":
            return "玖";
            break;
    }
}

Here is the method of converting numbers to uppercase. With this function, we can convert a number of any length into uppercase form.

Summary:

This article introduces how to convert numbers to uppercase in PHP. The core idea is to split the numbers by digits, convert them to uppercase one by one and Supplement with corresponding units, and finally get a numerical string in uppercase form. At the same time, you need to pay attention to the use of zero to avoid unnecessary repeated output.

The above is the detailed content of How to convert one digit to uppercase in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn