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中实现图片的锐化
Oct 09 PHP
PHP安全编程之加密功能
Oct 09 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
php实现图片等比例缩放代码
Jul 23 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
PHP简单验证码功能机制实例详解
Mar 27 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
javascript版2048小游戏
2015/03/18 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
python中assert用法实例分析
2015/04/30 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python生成器以及应用实例解析
2018/02/08 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
python opencv如何实现图片绘制
2020/01/19 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
史上最全面的Java面试题汇总!
2015/02/03 面试题
八年级美术教学反思
2014/02/02 职场文书
党委工作总结2015
2015/04/27 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js