热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php首字母排序,php实现姓名根据首字母排序的类与方法(实例代码)

php将名字按首字母进行排序,具体代码如下所示:publicfunctiongetFirstChar($s){$s0mb_substr($s,0,3);

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>&#61;-20319 and $asc<&#61;-20284)return "A";

if($asc>&#61;-20283 and $asc<&#61;-19776)return "B";

if($asc>&#61;-19775 and $asc<&#61;-19219)return "C";

if($asc>&#61;-19218 and $asc<&#61;-18711)return "D";

if($asc>&#61;-18710 and $asc<&#61;-18527)return "E";

if($asc>&#61;-18526 and $asc<&#61;-18240)return "F";

if($asc>&#61;-18239 and $asc<&#61;-17760)return "G";

if($asc>&#61;-17759 and $asc<&#61;-17248)return "H";

if($asc>&#61;-17247 and $asc<&#61;-17418)return "I";

if($asc>&#61;-17417 and $asc<&#61;-16475)return "J";

if($asc>&#61;-16474 and $asc<&#61;-16213)return "K";

if($asc>&#61;-16212 and $asc<&#61;-15641)return "L";

if($asc>&#61;-15640 and $asc<&#61;-15166)return "M";

if($asc>&#61;-15165 and $asc<&#61;-14923)return "N";

if($asc>&#61;-14922 and $asc<&#61;-14915)return "O";

if($asc>&#61;-14914 and $asc<&#61;-14631)return "P";

if($asc>&#61;-14630 and $asc<&#61;-14150)return "Q";

if($asc>&#61;-14149 and $asc<&#61;-14091)return "R";

if($asc>&#61;-14090 and $asc<&#61;-13319)return "S";

if($asc>&#61;-13318 and $asc<&#61;-12839)return "T";

if($asc>&#61;-12838 and $asc<&#61;-12557)return "W";

if($asc>&#61;-12556 and $asc<&#61;-11848)return "X";

if($asc>&#61;-11847 and $asc<&#61;-11056)return "Y";

if($asc>&#61;-11055 and $asc<&#61;-10247)return "Z";

}else if(ord($s)>&#61;48 and ord($s)<&#61;57){ //数字开头

switch(iconv_substr($s,0,1,&#39;utf-8&#39;)){

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)>&#61;65 and ord($s)<&#61;90){ //大写英文开头

return substr($s,0,1);

}else if(ord($s)>&#61;97 and ord($s)<&#61;122){ //小写英文开头

return strtoupper(substr($s,0,1));

}

else

{

return iconv_substr($s0,0,1,&#39;utf-8&#39;);

//中英混合的词语&#xff0c;不适合上面的各种情况&#xff0c;因此直接提取首个字符即可

}

}

public function addPeople()

{

$userName &#61; array(&#39;张三&#39;,&#39;马大帅&#39;,&#39;李四&#39;,&#39;王五&#39;,&#39;小二&#39;,&#39;猫蛋&#39;,&#39;狗蛋&#39;,&#39;王花&#39;,&#39;三毛&#39;,&#39;小明&#39;,&#39;李刚&#39;,&#39;张飞&#39;);

sort($userName);

foreach($userName as $name){

$char &#61; $this->getFirstChar($name);

$nameArray &#61; array();

if(count($charArray[$char])!&#61;0){

$nameArray &#61; $charArray[$char];

}

array_push($nameArray,$name);

$charArray[$char] &#61; $nameArray;

}

ksort($charArray);

$this->assign(&#39;_list&#39;,$charArray);

}

页面显示

{$k}

{$l}

总结

以上所述是小编给大家介绍的php实现姓名根据首字母排序的类与方法&#xff0c;希望对大家有所帮助&#xff0c;如果大家有任何疑问请给我留言&#xff0c;小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持&#xff01;



推荐阅读
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
author-avatar
手机用户上官婉儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有