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 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
PHP数组实例总结与说明
Aug 23 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
php中return的用法实例分析
Feb 28 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
php实现的http请求封装示例
Nov 08 PHP
php compact 通过变量创建数组
Nov 15 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
详解Python字符串对象的实现
2015/12/24 Python
Python闭包思想与用法浅析
2018/12/27 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
python轮询机制控制led实例
2020/05/03 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
新闻记者实习自我鉴定
2013/09/19 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
对标管理实施方案
2014/03/12 职场文书
《风筝》教学反思
2014/04/10 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫