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 相关文章推荐
phpMyAdmin 安装教程全攻略
Mar 19 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 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程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python 实现二维列表转置
2019/12/02 Python
Python中常见的数制转换有哪些
2020/05/27 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
Python 列表反转显示的四种方法
2020/11/16 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
opencv实现图像几何变换
2021/03/24 Python
婚纱摄影师求职信
2014/03/07 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
银行授权委托书范本
2014/10/04 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
Python下opencv库的安装过程及问题汇总
2021/06/11 Python