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