php实现姓名根据首字母排序的类与方法(实例代码)


Posted in PHP onMay 16, 2018

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>

总结

以上所述是小编给大家介绍的php实现姓名根据首字母排序的类与方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
PHP中的Session对象如何使用
Sep 25 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
php fread函数使用方法总结
May 28 PHP
laravel框架上传图片实现实时预览功能
Oct 14 PHP
laravel5.6中的外键约束示例
Oct 23 PHP
PHP多维数组指定多字段排序的示例代码
May 16 #PHP
php strftime函数获取日期时间(switch用法)
May 16 #PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 #PHP
Laravel 集成 Geetest验证码的方法
May 14 #PHP
PHP 多任务秒级定时器的实现方法
May 13 #PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 #PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 #PHP
You might like
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
详解vue 组件注册
2020/11/20 Vue.js
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
python中如何打包用户自定义模块
2020/09/23 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
八年级美术教学反思
2014/02/02 职场文书
新春联欢会主持词
2014/03/24 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
介绍长城的导游词
2015/01/30 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书