正文
php数据按拼音字母排序 php输入数字排序
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
php 中文转拼音首字母问题
原始代码有些问题,我做了些更改,原地址github 的 chenall/chenall/blob/master/php/tools/ZH-cn_TO_pinyin.php
?php
/*
中文汉字转拼音首字母的PHP简易实现方法.
要求: 只能是GB2312码表里面中文字符
转换得到字符串对应的拼音首字母大写.
用法:
echo zh2py::conv('Chinese 中华人民共和国');//Chinese ZHRMGHG
或
$py = new zh2py;
echo $py-conv('Chinese 中华人民共和国');//Chinese ZHRMGHG
*/
class zh2py
{
//根据汉字区位表
//我们可以看到从16-55区之间是按拼音字母排序的,所以我们只需要判断某个汉字的区位码就可以得知它的拼音首字母.
//区位表第一部份,按拼音字母排序的.
//16区-55区
/*
'A'=0xB0A1, 'B'=0xB0C5, 'C'=0xB2C1, 'D'=0xB4EE, 'E'=0xB6EA, 'F'=0xB7A2, 'G'=0xB8C1,'H'=0xB9FE,
'J'=0xBBF7, 'K'=0xBFA6, 'L'=0xC0AC, 'M'=0xC2E8, 'N'=0xC4C3, 'O'=0xC5B6, 'P'=0xC5BE,'Q'=0xC6DA,
'R'=0xC8BB, 'S'=0xC8F6, 'T'=0xCBFA, 'W'=0xCDDA, 'X'=0xCEF4, 'Y'=0xD1B9, 'Z'=0xD4D1
*/
private static $FirstTable = array(
0xB0C5, 0xB2C1, 0xB4EE, 0xB6EA, 0xB7A2, 0xB8C1, 0xB9FE, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2E8,
0xC4C3, 0xC5B6, 0xC5BE, 0xC6DA, 0xC8BB, 0xC8F6, 0xCBFA, 0xCDDA, 0xCEF4, 0xD1B9, 0xD4D1,0xD7FA
);
private static $FirstLetter = "ABCDEFGHJKLMNOPQRSTWXYZ";
//区位表第二部份,不规则的,下面的字母是每个区里面对应字的拼音首字母.从网上查询整理出来的,可能会有部份错误.
//56区-87区
private static $SecondTable = array(
"CJWGNSPGCGNEGYPBTYYZDXYKYGTZJNMJQMBSGZSCYJSYYFPGKBZGYDYWJKGKLJSWKPJQHYJWRDZLSYMRYPYWWCCKZNKYYG",
"TTNGJEYKKZYTCJNMCYLQLYPYSFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCKBPHFFSSTYBGMXLPBYLLBHLX",
"SMZMYJHSOJNGHDZQYKLGJHSGQZHXQGKXZZWYSCSCJXYEYXADZPMDSSMZJZQJYZCJJFWQJBDZBXGZNZCPWHWXHQKMWFBPBY",
"DTJZZKXHYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJYQDCSBBQBEFSJYHWWGZKPYLQBGLDLCDTNMAYDDKSSNGYCSGXLYZAYPN",
"PTSDKDYLHGYMYLCXPYCJNDQJWXQXFYYFJLEJPZRXCCQWQQSBZKYMGPLBMJRQCFLNYMYQMSQYRBCJTHZTQFRXQHXMQJCJLY",
"QGJMSHZKBSWYEMYLTXFSYDXWLYCJQXSJNQBSCTYHBFTDCYZDJWYGHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCL",
"QKXLHXJRZJMFQHXHWYWSBHTRXXGLHQHFNMGYKLDYXZPYLGGSMTCFBAJJZYLJTYANJGBJPLQGSZYQYAXBKYSECJSZNSLYZH",
"ZXLZCGHPXZHZNYTDSBCJKDLZAYFFYDLEBBGQYZKXGLDNDNYSKJSHDLYXBCGHXYPKDJMMZNGMMCLGWZSZXZJFZNMLZZTHCS",
"YDBDLLSCDDNLKJYKJSYCJLKWHQASDKNHCSGAGHDAASHTCPLCPQYBSZMPJLPCJOQLCDHJJYSPRCHNWJNLHLYYQYYWZPTCZG",
"WWMZFFJQQQQYXACLBHKDJXDGMMYDJXZLLSYGXGKJRYWZWYCLZMSSJZLDBYDCFCXYHLXCHYZJQSQQAGMNYXPFRKSSBJLYXY",
"SYGLNSCMHCWWMNZJJLXXHCHSYZSTTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLYXDCCWZOCWKCCSBNHCPDYZNFCYYTYCKX",
"KYBSQKKYTQQXFCMCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQKZPQSQSCFYMMDMGBWHWLGSLLYSDLMLXPTHMJ",
"HWLJZYHZJXKTXJLHXRSWLWZJCBXMHZQXSDZPSGFCSGLSXYMJSHXPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZYLXGSSSSTCL",
"SLDCLRPBHZHXYYFHBMGDMYCNQQWLQHJJCYWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSLJHTZKZJECXJCJNMFBYCSFYWYB",
"JZGNYSDZSQYRSLJPCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNTXHPLQKZCZWALSBCZJXSYZGWK",
"YPSGXFZFCDKHJGXTLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMSXLZJQQHZYJCZYDJWFMJKLDDPMJEGXYHYLXHLQYQHKYCW",
"CJMYYXNATJHYCCXZPCQLBZWWYTWBQCMLPMYRJCCCXFPZNZZLJPLXXYZTZLGDLTCKLYRZZGQTTJHHHJLJAXFGFJZSLCFDQZ",
"LCLGJDJZSNZLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNW",
"CZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJTFCJXDYGJQJJPMGWGJJJPKQSB",
"GBMMCJSSCLPQPDXCDYYKYPCJDDYYGYWRHJRTGZNYQLDKLJSZZGZQZJGDYKSHPZMTLCPWNJYFYZDJCNMWESCYGLBTZZGMSS",
"LLYXYSXXBSJSBBSGGHFJLYPMZJNLYYWDQSHZXTYYWHMCYHYWDBXBTLMSYYYFSXJCBDXXLHJHFSSXZQHFZMZCZTQCXZXRTT",
"DJHNRYZQQMTQDMMGNYDXMJGDXCDYZBFFALLZTDLTFXMXQZDNGWQDBDCZJDXBZGSQQDDJCMBKZFFXMKDMDSYYSZCMLJDSYN",
"SPRSKMKMPCKLGTBQTFZSWTFGGLYPLLJZHGJJGYPZLTCSMCNBTJBQFKDHBYZGKPBBYMTDSSXTBNPDKLEYCJNYCDYKZTDHQH",
"SYZSCTARLLTKZLGECLLKJLQJAQNBDKKGHPJTZQKSECSHALQFMMGJNLYJBBTMLYZXDXJPLDLPCQDHZYCBZSCZBZMSLJFLKR",
"ZJSNFRGJHXPDHYJYBZGDLQCSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLGNDJLSLYGKDZPZXJYYZLWCXSZFGWYYDLYHCLJS",
"CMBJHBLYZLYCBLYDPDQYSXQZBYTDKYXJYYCNRJMPDJGKLCLJBCTBJDDBBLBLCZQRPYXJCJLZCSHLTOLJNMDDDLNGKATHQH",
"JHYKHEZNMSHRPHQQJCHGMFPRXHJGDYCHGHLYRZQLCYQJNZSQTKQJYMSZSWLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMM",
"MYXCTPSHCPTXXZZSMPHPSHMCLMLDQFYQXSZYJDJJZZHQPDSZGLSTJBCKBXYQZJSGPSXQZQZRQTBDKYXZKHHGFLBCSMDLDG",
"DZDBLZYYCXNNCSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJJLZZNZJCDGZYG",
"CTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNPQCJPFCZLCLZXZDMXMPHJSGZ",
"GSZZQLYLWTJPFSYASMCJBTZYYCWMYTZSJJLJCQLWZMALBXYFBPNLSFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNNSZFDEQFHBS",
"AQTGYLBXMMYGSZLDYDQMJJRGBJTKGDHGKBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ",
);
public static function utf8_to_gbk($string)//编码转换,必须转换成GB2312字符,这里只是简单的判断并不是很准确,可以自己写一个.
{
if (mb_check_encoding($string,'gb2312'))
return $string;
if (function_exists('iconv'))
return iconv("utf-8","gb2312//IGNORE",$string);
return mb_convert_encoding($string,'gb2312','utf-8');
}
public static function conv($str)
{
$str = self::utf8_to_gbk($str);
$len = strlen($str);
$newStr = '';
for($i=0; $i$len ; ++$i)
{
$H = ord($str[$i]);
$L = ord($str[$i+1]);
//字符集非法
if ($H 0xB0 || $L 0xA1 || $H 0xF7 || $L == 0xFF)
{
$newStr .= $str[$i];
continue;
}
if ($H 0xD8)//($H = 0xB0 $H =0xD7)//查询文字在一级汉字区(16-55)
{
$W = ($H 8) | $L;
foreach(self::$FirstTable as $key=$value)
{
if ($W $value)
{
$newStr .= self::$FirstLetter[$key];
break;
}
}
}
else// if (H = 0xD8 H = 0xF7)//查询中文在二级汉字区(56-87)
$newStr .=self::$SecondTable[$H - 0xD8][$L-0xA1];
++$i;
}
return $newStr;
}
}
echo zh2py::conv('妃');//F
php数组如何按拼音顺序排序
1、如果你用过smarty模板引擎、MVC类似框架如tp,那么你自己写一个框架噢!
2、你要对php的继承实现以及其中的小知识点熟知;
3、先列出你的框架目录,什么地方放什么,然后写你的配置文件
4、用到的高频函数有:require 、 require_once 、 file_exites等!
如:sybase_connect连上数据库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数函数种类: 数据库功能 本函数用来打开与 Sybase 数据库的连接。
参数 servername 为欲连上的数据库服务器名称。
参数 username 及 password 可省略,分别为连接使用的帐号及密码。
使用本函数需注意早点关闭数据库,以减少系统的负担。
连接成功则返回数据库的连接代号,失败返回 false 值。
php mysql查询后按拼音首字母分组排序
SELECT name FROM `user` ORDER BY CONVERT( name USING gbk ) ASC
直接就是按汉字首个字的首字母排序,自动都会分组了啊。
php mysql 如何将中文转换拼音、小写转大写;并排序
首先 在网上 找找函数 把中文转换成拼音的
例如 to_pinyin();
然后
$data_sort = array();
foreach($data as $row){
$data[to_pinyin($row)] = $row;
}
最后 用 键值排序 就可以了
php mysql 如何将汉字转拼音、将小写转大写,并排序
你在数据库里增加一个字段吧, 专门记录拼音,这样就简单了啊。
用程序 改是太难了。
php中根据汉字的拼音排序问题:
最简单的方法就是先把歌手名(汉字)用php转换成拼音,然后order by排序就可以了,有一个pinyin类,可以去网上找找看,帝国CMS里面也有,可以拷出来用。
php数据按拼音字母排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php输入数字排序、php数据按拼音字母排序的信息别忘了在本站进行查找喔。