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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php更新cookie内容的详细方法
Sep 30 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
escape unescape的php下的实现方法
2007/04/27 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
自动更新作用
2006/10/08 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
在Express中提供静态文件的实现方法
2019/10/17 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
python 自动提交和抓取网页
2009/07/13 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
应届毕业生应聘自荐信范文
2014/02/26 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
干部个人对照检查材料
2014/08/25 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
队名及霸气口号大全
2015/12/25 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS
python中24小时制转换为12小时制的方法
2021/06/18 Python
MySQL RC事务隔离的实现
2022/03/31 MySQL
Python turtle编写简单的球类小游戏
2022/03/31 Python