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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
PHP 魔术函数使用说明
May 14 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
php获取服务器信息的实现代码
Feb 04 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
php数组添加元素方法小结
Dec 20 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
浅谈php调用python文件
Mar 29 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/09/03 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
Seajs的学习笔记
2014/03/04 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
vuex实现购物车功能
2020/06/28 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
解决Python传递中文参数的问题
2015/08/04 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
大学生年度自我鉴定
2013/10/31 职场文书
教师对学生的评语
2014/04/28 职场文书
奖励申请报告范文
2015/05/15 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书