php实现姓名按首字母排序的类与方法
php将名字按首字母进行排序
<?php
public
function
getFirstChar(
$s
){
$s0
= mb_substr(
$s
,0,3);
//获取名字的姓
$s
= iconv(
'UTF-8'
,
'gb2312'
,
$s0
);
//将UTF-8转换成GB2312编码
//dump($s0);
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"
;
}
else
if
(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'
);
//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
}
}
public
function
addPeople()
{
$userName
=
array
(
'张三'
,
'马大帅'
,
'李四'
,
'王五'
,
'小二'
,
'猫蛋'
,
'狗蛋'
,
'王花'
,
'三毛'
,
'小明'
,
'李刚'
,
'张飞'
);
sort(
$userName
);
foreach
(
$userName
as
$name
){
$char
=
$this
->getFirstChar(
$name
);
$nameArray
=
array
();
if
(
count
(
$charArray
[
$char
])!=0){
$nameArray
=
$charArray
[
$char
];
}
array_push
(
$nameArray
,
$name
);
$charArray
[
$char
] =
$nameArray
;
}
ksort(
$charArray
);
$this
->assign(
'_list'
,
$charArray
);
}
<
foreach
name
=
"_list"
item
=
"vo"
key
=
"k"
>
<
p
>{$k}</
p
>
<
foreach
name
=
"vo"
item
=
"l"
>
<
span
class
=
"name"
>{$l}</
span
>
</
foreach
>
</
foreach
>
转载于:https://www.cnblogs.com/mverting/p/9044624.html
php实现姓名按首字母排序的类与方法相关推荐
- 按照姓名拼音首字母排序
按照姓名拼音首字母排序 https://blog.csdn.net/YezhanCHN/article/details/119880298
- mysql中英文姓名按照首字母排序_mysql 汉字根据首字母排序
1:如果数据库表字段的字符编码是latin1_swedish_ci select * from tablename order by birary(name) asc ; tablename:数据库表 ...
- java实现姓名按首字母排序
public List<Object> sortByName(List<String> name){Comparator<Object> cmp = Collato ...
- Oracle 10g如何对用户姓名,按首字母排序、查询
2019独角兽企业重金招聘Python工程师标准>>> 首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序 ...
- oracle按照姓名查询,Oracle 10g如何对用户姓名,按首字母排序、查询
首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按 ...
- 【工具封装】Python 字典列表按中文姓名首字母排序
第三方模块: 功 能: 汉字拼音转换模块,将汉字转为拼音:可以用于汉字注音.排序.检索. 模块名称: pypinyin 官方文档: https://pypi.org/project/pyp ...
- 根据姓名首字母排序查询
1.前台需要List<HashMap<String,Object>>类型的数据,先对查询出的List<UserVo>进行处理. 后台查询已经将姓名首字母查询出来(数 ...
- oracle 首位是字母,Oracle 10g如何对用户姓名,按首字母排序、查询
首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按 ...
- 按汉字首字母排序(sql语句)
在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...
最新文章
- 《UNIX高级环境编程》 -- apue.h
- 小麦盒子cdn_阿里云CDN入门使用配置
- 周五话营销 | 数据分析强势解决营销人三大痛点
- 泛函分析2——Normed Linear Spaces
- createjs中shape的属性regX和regY
- LeetCode MySQL 626. 换座位
- 自动设置图片的序号_编写学位论文时如何给表格和图片自动编号
- linux下执行shell修改用户密码,[转] 关于linux下通过shell命令(自动)修改用户密码...
- 关于 LimitedConcurrencyLevelTaskScheduler 的疑惑
- Qt获取本地ip地址
- python写诗代码_我们分析了超过50万首诗歌,教你用代码写诗(附代码)
- 吴恩达 - 机器学习课程笔记(持续更新)
- 路由器如何设置无线桥接
- cydia软件路径_Cydia源目录结构解析
- 摄像头网页服务器,网络摄像头实现直播的方法 在网页浏览器播放等于可以在网页传播...
- java 字符串转pdf_Java pdf转String 并修正格式
- Yann Lecun 纽约大学Spring2020深度学习课程,附66页PPT下载
- mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
- php yii2框架仿站教程,从零开始学YII2框架(六)高级应用程序模板,yii2框架
- 首都师范大学计算机技术复试分数线,首都师范大学2019年考研复试分数线已公布...
热门文章
- Eclipse变量名自动补全问题 自定义上屏按键为TAB
- [Hadoop] - 自定义Mapreduce InputFormatOutputFormat
- C#中往数据库插入/更新时候关于NUll空值的处理
- 针对plsql developer使用做的三个小设置
- 标准模板库(STL)学习指南之List容器
- GridView中的CheckBox单击事件(oncheckedchanged)
- css3 pointer-events:none 允许点击穿透
- 浙南联合训练赛20180414
- 互联网企业安全高级指南3.6 需要自己发明安全机制吗
- HYSBZ - 1050(旅行comf 并查集Java实现)