php - get Chinese characters spelling the first letter ASCII

Scene: The Chinese string sorting

? < PHP 

class Demo 
{ 
    public  function __construct () 
    { 

    } 

    / * * 
     * @todo get a string of Chinese characters initials ASCII 
     * @param $ String 
     * @param int $ default_length 
     * @return float | int 
     * / 
    public  function chinese_alphabet_ascii ( $ String , $ default_length =. 3 ) 
    { 
        $ Number = 0 ;
         for ( $ I = 0; $ I < $ default_length ; $ I ++ ) {
            $ Number = $ Number * 100 + $ the this -> chinese_initials (mb_substr ( $ String , $ I , $ I +. 1 )); 
        } 

        for ( $ J = mb_strlen ( $ String ); $ J < $ default_length ; $ J + + ) {
             $ Number * = 100 ; 
        } 

        return  $ Number ; 
    } 

    / * * 
     * @todo obtain Pinyin initials - the ASCII 
     * @param Character $ 
     * @return int 
     * / 
    public function chinese_initials($character) {
        $ascii = ord($character);

        if ($ascii > 122) {
            $unicode = iconv("UTF-8", "GBK", $character);
            $ascii = ord($unicode{0}) * 256 + ord($unicode{1}) - 65536;
        }

        switch ($ascii) {
            // 0 ~ 9
            case $ascii >= 48 && $ascii <= 57 :
                $result_ascii = $ascii;
                break;
            // A ~ Z
            case $ascii >= 65 && $ascii <= 90 :
                $result_ascii = $ascii;
                break;
            // a ~ z
            case $ascii >= 97 && $ascii <= 122 :
                $result_ascii = $ascii - 32;
                break;
            // 汉字字母
            case $ascii >= -20319 && $ascii <= -20284:
                $result_ascii = 65;
                break;
            case $ascii >= -20283 && $ascii <= -19776:
                $result_ascii = 66;
                break;
            case $ascii >= -19775 && $ascii <= -19219:
                $result_ascii = 67;
                break;
            case $ascii >= -19218 && $ascii <= -18711:
                $result_ascii = 68;
                break;
            case $ascii >= -18710 && $ascii <= -18527:
                $result_ascii = 69;
                break;
            case $ascii >= -18526 && $ascii <= -18240:
                $result_ascii = 70;
                break;
            case $ascii >= -18239 && $ascii <= -17923:
                $result_ascii = 71;
                break;
            case $ascii >= -17922 && $ascii <= -17418:
                $result_ascii = 72;
                break;
            case $ascii >= -17417 && $ascii <= -16475:
                $result_ascii = 74;
                break;
            case $ascii >= -16474 && $ascii <= -16213:
                $result_ascii = 75;
                break;
            case $ascii >= -16212 && $ascii <= -15641:
                $result_ascii = 76;
                break;
            case $ascii >= -15640 && $ascii <= -15166:
                $result_ascii = 77;
                break;
            case $ascii >= -15165 && $ascii <= -14923:
                $result_ascii = 78;
                break;
            case $ascii >= -14922 && $ascii <= -14915:
                $result_ascii = 79;
                break;
            case $ascii >= -14914 && $ascii <= -14631:
                $result_ascii = 80;
                break;
            case $ascii >= -14630 && $ascii <= -14150:
                $result_ascii = 81;
                break;
            case $ascii >= -14149 && $ascii <= -14091:
                $result_ascii = 82;
                break;
            case $ascii >= -14090 && $ascii <= -13319:
                $result_ascii = 83;
                break;
            case $ascii >= -13318 && $ascii <= -12839:
                $result_ascii = 84;
                break;
            case $ascii >= -12838 && $ascii <= -12557:
                $result_ascii = 87;
                break;
            case $ascii >= -12556 && $ascii <= -11848:
                $result_ascii = 88;
                break;
            case $ascii >= -11847 && $ascii <= -11056:
                $result_ascii = 89;
                break;
            case $ascii >= -11055 && $ascii <= -10247:
                $result_ascii = 90;
                break;
            default:
                $result_ascii = 91;
        }
        return $result_ascii;
    }
}

 

Added: priority &&, || with and, or of:

Priority: &&> ||> and> or

1. The two separate expression involved in computing, and with &&, || calculation result with the same or

2. Multiple expressions when participating in operation, pay attention to priority issues

Guess you like

Origin www.cnblogs.com/wsybky/p/12181523.html