使用php来批量获取汉字、数字、英文的首字母,可以来用作字母和数字英文等混合字符串进行按首字母排序。
多维数组的排序链接:https://ijuer.com/blog/139.html
<?php if (ord($title) > 128) { //汉字开头 echo $letter = getfirstchar($title); } else if (ord($title) >= 48 and ord($title) <= 57) { //数字开头 echo $letter = iconv_substr($title, 0, 1, 'utf-8'); } else if (ord($title) >= 65 and ord($title) <= 90) { //大写英文开头 echo $letter = iconv_substr($title, 0, 1, 'utf-8'); } else if (ord($title) >= 97 and ord($title) <= 122) { //小写英文开头 echo $letter = iconv_substr($title, 0, 1, 'utf-8'); } function getfirstchar($s0) { $s = iconv("UTF-8", "gb2312", $s0); $asc = ord($s{0}) * 256 + ord($s{1}) - 65536; if ($asc >= - 20319 and $asc <= - 20284) return "A" if ($asc >= - 20283 and $asc <= - 19776) return "B" if ($asc >= - 19775 and $asc <= - 19219) return "C" if ($asc >= - 19218 and $asc <= - 18711) return "D" if ($asc >= - 18710 and $asc <= - 18527) return "E" if ($asc >= - 18526 and $asc <= - 18240) return "F" if ($asc >= - 18239 and $asc <= - 17923) return "G" if ($asc >= - 17922 and $asc <= - 17418) return "H" if ($asc >= - 17417 and $asc <= - 16475) return "J" if ($asc >= - 16474 and $asc <= - 16213) return "K" if ($asc >= - 16212 and $asc <= - 15641) return "L" if ($asc >= - 15640 and $asc <= - 15166) return "M" if ($asc >= - 15165 and $asc <= - 14923) return "N" if ($asc >= - 14922 and $asc <= - 14915) return "O" if ($asc >= - 14914 and $asc <= - 14631) return "P" if ($asc >= - 14630 and $asc <= - 14150) return "Q" if ($asc >= - 14149 and $asc <= - 14091) return "R" if ($asc >= - 14090 and $asc <= - 13319) return "S" if ($asc >= - 13318 and $asc <= - 12839) return "T" if ($asc >= - 12838 and $asc <= - 12557) return "W" if ($asc >= - 12556 and $asc <= - 11848) return "X" if ($asc >= - 11847 and $asc <= - 11056) return "Y" if ($asc >= - 11055 and $asc <= - 10247) return "Z" return false; } ?>
多维数组的排序链接:https://ijuer.com/blog/139.html