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分页思路以及在ZF中的使用
May 30 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
WordPress网站性能优化指南
Nov 18 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
Symfony2开发之控制器用法实例分析
Feb 05 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
php判断目录存在的简单方法
Sep 26 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 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+ajax实现无刷新数据分页的办法
2015/11/02 PHP
js 匿名调用实现代码
2009/06/19 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
python字符串排序方法
2014/08/29 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python Django view 两种return的实现方式
2020/03/16 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
网页设计个人找工作求职信
2013/11/28 职场文书
庆国庆活动总结
2014/08/28 职场文书
学前教育专业求职信
2014/09/02 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
Nginx反向代理、重定向
2022/04/13 Servers