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 管理系统程序中的后门
Aug 05 PHP
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
php简单获取复选框值的方法
May 11 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 PHP
PHP哈希表实现算法原理解析
Dec 11 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
js实现图片360度旋转
2017/01/22 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
python实现日常记账本小程序
2018/03/10 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
班组长岗位职责范本
2014/01/05 职场文书
家教广告词
2014/03/19 职场文书
公司感谢信范文
2015/01/22 职场文书
经费申请报告范文
2015/05/18 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
python多次执行绘制条形图
2022/04/20 Python