1> 网络上很多php的工具类可以将汉字转为拼音;

2> 将拼音进行排序即可

另一种则是类似mysql转码方式:

1 foreach ($array as $key=>$value)

2 {

3 $new_array[$key] = iconv('UTF-8', 'GBK', $value);

4 } 1 foreach ($array as $key=>$value)

2 {

3 $new_array[$key] = iconv('UTF-8', 'GBK', $value);

4 }

5 asort($new_array);

6 foreach ($new_array as $key=>$value)

7 {

8 $array[$key] = iconv('GBK', 'UTF-8', $value);

9 }

5 asort($new_array);

6 foreach ($new_array as $key=>$value)

7 {

8 $array[$key] = iconv('GBK', 'UTF-8', $value);

9 }

综合案列

//按中文首字母排序

function orderByName($userName,$order='asc',$key='jlname'){

foreach($userName as $name){

if(is_array($name))$char = getFirstChar($name[$key]);

elseif(is_string($name))$char= getFirstChar($name);

$nameArray = array();//将姓名按照姓的首字母与相对的首字母键进行配对

if(count($charArray[$char])!=0)$nameArray = $charArray[$char];

array_push($nameArray,$name);

$charArray[$char] = $nameArray;

}

if(strtolower($order)=='asc')ksort($charArray);elseif(strtolower($order)=='desc')krsort($charArray);

$newarr = array();

$i=0;

foreach($charArray as $ck=>$cv){

if(is_array($cv)){

foreach($cv as $cck=>$ccv){

$newarr[$i++] = $ccv;

}

}else{

$newarr[$i++]=$cv;

}

}

/*echo '按首字母排序前:
';

print_r($charArray);

//根据键值对排序

echo '按首字母排序后:
';

print_r($charArray);*/

return $newarr;

}

//获取中文的首字母

function getFirstChar($s){

$s0 = mb_substr($s,0,1,'utf-8');//获取名字的姓

$s = iconv('UTF-8','GBK', $s0);//将UTF-8转换成GB2312编码

if(ord($s0)>128){//汉字开头,汉字没有以U、V开头的

$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<=-17760)return "G";

if($asc>=-17759 and $asc<=-17248)return "H";

if($asc>=-17247 and $asc<=-17418)return "I";

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";

}elseif(ord($s)>=48 and ord($s)<=57){//数字开头

switch(iconv_substr($s,0,1,'utf-8')){

case 1:return "Y";

case 2:return "E";

case 3:return "S";

case 4:return "S";

case 5:return "W";

case 6:return "L";

case 7:return "Q";

case 8:return "B";

case 9:return "J";

case 0:return "L";

}

}else if(ord($s)>=65 and ord($s)<=90){//大写英文开头

return substr($s,0,1);

}else if(ord($s)>=97 and ord($s)<=122){//小写英文开头

return strtoupper(substr($s,0,1));

}else{

return iconv_substr($s0,0,1,'utf-8');//中英混合的词语提取首个字符即可

}

}

mysql实现

如果当前数据库编码是utf-8,则进行转码,转为gbk,gbk默认汉字按照拼音排序存放:

1 SELECT * FROM USER ORDER BY convert(uname using gbk) ASC

如果当前编码为gbk则:

1 SELECT * FROM USER ORDER BY uname ASC

mysql排序的中文首字母排序和自定义排序

select * FROM organ_new where city_code = 'SZ0755' and organ_type = 'H' and state = '1' ORDER BY FIE ...

oc中文首字母排序

oc中文首字母排序 NSArray *arr2=@[@"小雨",@"安安",@"小风",@"荣荣",@"张涛& ...

Java中实现对集合中对象按中文首字母排序

有一个person对象如下: public class Person { private String id;private String nam; } 一个list集合如下: List

java实现按中文首字母排序的方式

public class ABD { public static void main(String[] args) { //Collator类是用来执行区分语言环境的String比较的,这里是选择CH ...

javascript按中文首字母排序

resultValue=[ '武汉' , '北京' , '上海' , '天津' ] ; resultValue= resultValue.sort( function compareFunction( ...

mysql中文名字按首字母排序

在mysql数据库中可以使用GBK编码对中文进行排序,如名字按首字母排序 order by convert(substr(tu.username,1,1) using 'GBK') 其中substr方 ...

php里获取第一个中文首字母并排序

需求里结算首页需要按门店的首字母A-Z排序.我的数据结构原本是这样的: Array ( [0] => Array ( [sid] => 2885842 [recetcstoredpay] ...

关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案

首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值     SCHINESE_RADICAL_M ...

HashMap加入数据后,会自动根据首字母排序

1.Map> entityHashMap = new HashMap<>(); 然后增加一些数据,会发现根据String ...

随机推荐

Linux基础命令介绍七:网络传输与安全 wget curl rsync iptables

本篇接着介绍网络相关命令:wget 文件下载工具.curl 网络数据传输工具.rsync 文件传输工具等. 本篇接着介绍网络相关命令 1.wget 文件下载工具 wget [option]... [U ...

再次学习C&plus;&plus;类之构造函数

学习C++类,首先要说C中的结构体,虽然C++类扩展了C中的结构体,可以添加成员函数,但他们是有区别的.在结构体中,成员变量.成员函数都是公有的,而类中,一般是成员变量是私有的,成员函数是公有的,私有 ...

POJ 1099 Square Ice

Square Ice Description Square Ice is a two-dimensional arrangement of water molecules H2O, with oxyg ...

如何使用iframe实现隐藏的CSRF

1.攻击者在“页面1”中http://www.b.com/indexb.html中写下如下代码: /p>

ESMOD北京高级时装艺术学校&lowbar;百度百科

ESMOD北京高级时装艺术学校_百度百科 ESMOD北京高级时装艺术学校

(0)写给Web初学者的教案-----Web基础

0,Web基础 一.    What is the Web? Can It Eat? 很多同学可能都听说过一个名词叫做“Web”,这个词隐隐约约好像和我们上网相关.但是呢,又很难说的清楚.我们今天每位 ...

shell学习笔记&lpar;一&rpar;

1.第一行必须以#!/bin/bash #!表示脚本使用后面的解释器解释执行 2.echo 打印输出 例如   echo "hello world" > aa.txt 3.接 ...

JVM-触发Full GC的情况

除直接调用System.gc外,触发Full GC执行的情况有如下四种: 1.老年代空间不足 老年代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足现象,当执行Full GC后空间仍然不足 ...

Linux(CentOS) 查看当前占用CPU或内存最多的K个进程

一.可以使用以下命令查使用内存最多的K个进程 方法1: ps -aux | sort -k4nr | head -K 如果是10个进程,K=10,如果是最高的三个,K=3 说明:ps -aux中(a指 ...

逻辑读为何消耗CPU?

在数据库系统中,经常会看到这个说法:“逻辑读很消耗CPU”,然后开始把这句话当作一个定理来使用.但是为什么“同样是读,为什么逻辑读会使用那么多CPU?” 查了一些资料,配合自己的理解,有下面几点体会: ...

php按中文排序,php按照中文首字母排序相关推荐

  1. mysql中英文姓名按照首字母排序_mysql 汉字根据首字母排序

    1:如果数据库表字段的字符编码是latin1_swedish_ci select * from tablename order by birary(name) asc ; tablename:数据库表 ...

  2. MySQL中文无法按照拼音首字母排序解决方法convert(name USING gbk)

    问题如下: 使用默认的order by函数无法对中文数据按照首字母进行排序 SELECT * FROM `test_table` ORDER BY company_name,reply_room_na ...

  3. 中文拼音首字母排序比较器

    说明 主要是之前和别人讨论排序问题,当时碰到的问题是,需要按照中文第一个字的拼音首字母排序,百度发现自带的比较器 Collator.getInstance(Locale.CHINA) ,但是使用和追源 ...

  4. python 中文排序(按拼音首字母)

    pypinyin 排序 仅按拼音首字母 排序 安装pypinyin pip3 install pypinyin 代码from pypinyin import lazy_pinyinchars = [' ...

  5. java首字母排序_Java-首字母排序汉字排序

    Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa",&q ...

  6. 中文按拼音首字母排序的C++实现方案

    先介绍下背景,最近有个需求,需要将用户的好友列表按照昵称的拼音首字母排序,类似于手机电话簿的联系人.一开始建议让终端同学去做这点,毕竟终端现有的电话簿模块已经实现了,不过终端同学说电话簿是系统组件,移 ...

  7. uni-app小程序,实现根据中文首字母排序功能

    描述: 从后端调用接口获取所有热的姓名,将这些名字的首字母排序,然后放到对应字母下面,最终效果图如下: 实现过程 **总体实现的思路是:**首先调用接口,获取所有员工的姓名以及其他信息,将获取回来的中 ...

  8. java首字母排序_Java实现按中文首字母排序的具体实例

    这篇文章主要介绍了Java实现按中文首字母排序的具体实例,有需要的朋友可以参考一下 要实现"按中文首字母排序"操作,可以使用java.util包下的Arrays类的sort()函数 ...

  9. [转载]ExtJS中grid按照中文拼音首字母排序、改变行背景、列背景、静态数据分页不再困难...

    代码 1 本示例主要使用到了静态数据分页 Ext.data.PagingMemoryProxy组件.Ext.PagingToolbar分页条.viewConfig的getRowClass 方法.列co ...

最新文章

  1. 如何在网页中添加flash文件
  2. RedHat5 开启telnet,ftp等服务
  3. Android3个页面跳转代码,从零开始Android组件化改造(三) - 页面跳转与路由组件...
  4. 1257 背包问题 V3——分数规划
  5. CPU流水线的探秘之旅
  6. oracle 查询时间跨度一年,关于时间跨度比较的OVERLAPS函数
  7. maven学习记录一——maven介绍及入门
  8. 面试题之说几个Object类常用方法以及作用
  9. 【Modbus】 RTU CRC校验码计算方法
  10. 尚学堂·百战程序员--java300集视频笔记
  11. 对赌协议里,隐藏了多少致命陷阱
  12. yolov7基于python 的onnx推理
  13. matlab触发igbt电路设计,IGBT单相桥式无源逆变电路设计(纯电阻负载).doc
  14. python 读取doc 和 docx
  15. SAP术语总结详细版(转)
  16. 小数化分数c++(附做法数学证明)
  17. 线下增加设备接口开发(SDK)
  18. 国内渗透测试新神器--北极熊扫描器4.0
  19. 18个接私活的平台:
  20. 解决MPS运行中出现Unsupported major.minor version错误问题

热门文章

  1. 管理工具 - QC 安装 问题集合
  2. 史上最全!中国电信5G 2B专网介绍来了
  3. 仰邦控制卡Python接口_仰邦控制卡使用说明.doc
  4. python中*args 和 **kwargs区别
  5. django 1.8 官方文档翻译: 1-2-1 编写你的第一个Django应用,第1部分
  6. python ppt xlsx等文档转图片
  7. 新计算机显卡声音大,刚买回来的电脑主机噪音大怎么办
  8. php分数分母,连分数计算器
  9. redisson批量get
  10. 游戏公司岗位揭密:美工易搭讪,策划都很屌