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 相关文章推荐
复杂检索数据并分页显示的处理方法
Oct 09 PHP
PHP 中的批处理的实现
Jun 14 PHP
require(),include(),require_once()和include_once()区别
Mar 27 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
基于PHP后台的Android新闻浏览客户端
May 23 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
PHP中散列密码的安全性分析
Jul 26 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下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
vue组件实例解析
2017/01/10 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
Python 多线程的实例详解
2017/09/07 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
个人函授自我鉴定
2014/03/25 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
Nginx限流和黑名单配置
2022/05/20 Servers