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实现姓名按首字母排序的类与方法相关推荐

  1. 按照姓名拼音首字母排序

    按照姓名拼音首字母排序 https://blog.csdn.net/YezhanCHN/article/details/119880298

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

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

  3. java实现姓名按首字母排序

    public List<Object> sortByName(List<String> name){Comparator<Object> cmp = Collato ...

  4. Oracle 10g如何对用户姓名,按首字母排序、查询

    2019独角兽企业重金招聘Python工程师标准>>> 首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序 ...

  5. oracle按照姓名查询,Oracle 10g如何对用户姓名,按首字母排序、查询

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

  6. 【工具封装】Python 字典列表按中文姓名首字母排序

    第三方模块: 功       能: 汉字拼音转换模块,将汉字转为拼音:可以用于汉字注音.排序.检索. 模块名称: pypinyin 官方文档: https://pypi.org/project/pyp ...

  7. 根据姓名首字母排序查询

    1.前台需要List<HashMap<String,Object>>类型的数据,先对查询出的List<UserVo>进行处理. 后台查询已经将姓名首字母查询出来(数 ...

  8. oracle 首位是字母,Oracle 10g如何对用户姓名,按首字母排序、查询

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

  9. 按汉字首字母排序(sql语句)

    在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...

最新文章

  1. 《UNIX高级环境编程》 -- apue.h
  2. 小麦盒子cdn_阿里云CDN入门使用配置
  3. 周五话营销 | 数据分析强势解决营销人三大痛点
  4. 泛函分析2——Normed Linear Spaces
  5. createjs中shape的属性regX和regY
  6. LeetCode MySQL 626. 换座位
  7. 自动设置图片的序号_编写学位论文时如何给表格和图片自动编号
  8. linux下执行shell修改用户密码,[转] 关于linux下通过shell命令(自动)修改用户密码...
  9. 关于 LimitedConcurrencyLevelTaskScheduler 的疑惑
  10. Qt获取本地ip地址
  11. python写诗代码_我们分析了超过50万首诗歌,教你用代码写诗(附代码)
  12. 吴恩达 - 机器学习课程笔记(持续更新)
  13. 路由器如何设置无线桥接
  14. cydia软件路径_Cydia源目录结构解析
  15. 摄像头网页服务器,网络摄像头实现直播的方法 在网页浏览器播放等于可以在网页传播...
  16. java 字符串转pdf_Java pdf转String 并修正格式
  17. Yann Lecun 纽约大学Spring2020深度学习课程,附66页PPT下载
  18. mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
  19. php yii2框架仿站教程,从零开始学YII2框架(六)高级应用程序模板,yii2框架
  20. 首都师范大学计算机技术复试分数线,首都师范大学2019年考研复试分数线已公布...

热门文章

  1. Eclipse变量名自动补全问题 自定义上屏按键为TAB
  2. [Hadoop] - 自定义Mapreduce InputFormatOutputFormat
  3. C#中往数据库插入/更新时候关于NUll空值的处理
  4. 针对plsql developer使用做的三个小设置
  5. 标准模板库(STL)学习指南之List容器
  6. GridView中的CheckBox单击事件(oncheckedchanged)
  7. css3 pointer-events:none 允许点击穿透
  8. 浙南联合训练赛20180414
  9. 互联网企业安全高级指南3.6 需要自己发明安全机制吗
  10. HYSBZ - 1050(旅行comf 并查集Java实现)