php按中文排序,php按照中文首字母排序
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++类之构造函数
学习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北京高级时装艺术学校_百度百科
ESMOD北京高级时装艺术学校_百度百科 ESMOD北京高级时装艺术学校
(0)写给Web初学者的教案-----Web基础
0,Web基础 一. What is the Web? Can It Eat? 很多同学可能都听说过一个名词叫做“Web”,这个词隐隐约约好像和我们上网相关.但是呢,又很难说的清楚.我们今天每位 ...
shell学习笔记(一)
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按照中文首字母排序相关推荐
- mysql中英文姓名按照首字母排序_mysql 汉字根据首字母排序
1:如果数据库表字段的字符编码是latin1_swedish_ci select * from tablename order by birary(name) asc ; tablename:数据库表 ...
- MySQL中文无法按照拼音首字母排序解决方法convert(name USING gbk)
问题如下: 使用默认的order by函数无法对中文数据按照首字母进行排序 SELECT * FROM `test_table` ORDER BY company_name,reply_room_na ...
- 中文拼音首字母排序比较器
说明 主要是之前和别人讨论排序问题,当时碰到的问题是,需要按照中文第一个字的拼音首字母排序,百度发现自带的比较器 Collator.getInstance(Locale.CHINA) ,但是使用和追源 ...
- python 中文排序(按拼音首字母)
pypinyin 排序 仅按拼音首字母 排序 安装pypinyin pip3 install pypinyin 代码from pypinyin import lazy_pinyinchars = [' ...
- java首字母排序_Java-首字母排序汉字排序
Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa",&q ...
- 中文按拼音首字母排序的C++实现方案
先介绍下背景,最近有个需求,需要将用户的好友列表按照昵称的拼音首字母排序,类似于手机电话簿的联系人.一开始建议让终端同学去做这点,毕竟终端现有的电话簿模块已经实现了,不过终端同学说电话簿是系统组件,移 ...
- uni-app小程序,实现根据中文首字母排序功能
描述: 从后端调用接口获取所有热的姓名,将这些名字的首字母排序,然后放到对应字母下面,最终效果图如下: 实现过程 **总体实现的思路是:**首先调用接口,获取所有员工的姓名以及其他信息,将获取回来的中 ...
- java首字母排序_Java实现按中文首字母排序的具体实例
这篇文章主要介绍了Java实现按中文首字母排序的具体实例,有需要的朋友可以参考一下 要实现"按中文首字母排序"操作,可以使用java.util包下的Arrays类的sort()函数 ...
- [转载]ExtJS中grid按照中文拼音首字母排序、改变行背景、列背景、静态数据分页不再困难...
代码 1 本示例主要使用到了静态数据分页 Ext.data.PagingMemoryProxy组件.Ext.PagingToolbar分页条.viewConfig的getRowClass 方法.列co ...
最新文章
- KBMMW 的日志管理器
- 菜鸟学算法一基础知识篇
- 如何弹出UIDatePicker最好
- Python实现打印螺旋矩阵功能的方法
- 《spring揭秘》读书笔记一
- windows上部署nginx---nginx启动
- 数组的partition调整
- 数据结构---并查集
- 校验用户画像的准确性
- Shell——printf 命令
- 【项目合作】瓷砖表面打印缺陷识别
- 收集的图像处理网站http://blog.csdn.net/chief1985/article/details/1898358
- if __name__ == '__main__' 如何正确理解?
- 《信号检测与估值理论》Matlab仿真,包括: 高斯-牛顿迭代法对正弦信号参数进行估计
- 类抽屉问题的C++解决
- 心无界,牧云端:华为云与人工智能的野望
- 深度学习神经网络画图软件汇总
- 虚拟机Linux忘记root用户密码的修复方法
- 图片翻译如何操作?图片翻译的方法分享.
- DDS、openDDS和fast DDS介绍
热门文章
- 蚁狮算法(Ant Lion Optimization)
- 数据湖(八):Iceberg数据存储格式
- 视频编码器效率评价标准:BDPSNR和BDBR
- pitch、yaw、roll三个角的区别(yaw angle 偏航角,steering angle 航向角的解释)
- 父母最应该看的10本教育经典书
- 管理工具 - QC 安装 问题集合
- 每天有数百人搜索 App 破解,开发者该怎么保护自己的手机应用呢?
- 安装使用NVIDIA-Docker——可使用GPU的Docker容器
- Java规范的注释方式(注释方式:单行注释、多行注释、文档注释)
- 为啥mysql安装不上_mysql安装不上怎么办mysql安装失败原因和解决方法_MySQL