/**

* 取汉字的第一个字的首字母

* @param type $str

* @return string|null

* @user qichao

* @date 2017-04-13*/

public function _getFirstCharter($str){if(empty($str)) {return '';}$fchar=ord($str{0});if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});$s1=iconv('UTF-8','gb2312',$str);$s2=iconv('gb2312','UTF-8',$s1);$s=$s2==$str?$s1:$str;$asc = ord($s{0})*256 + ord($s{1})-65536;if($asc>=-20319&&$asc<=-20284) return ‘A';

if($asc>=-20283&&$asc<=-19776 || $asc==-9743) return'B';

if($asc>=-19775&&$asc<=-19219) return'C';

if($asc>=-19218&&$asc<=-18711 || $asc==-9767) return'D';

if($asc>=-18710&&$asc<=-18527) return'E';

if($asc>=-18526&&$asc<=-18240) return'F';

if($asc>=-18239&&$asc<=-17923) return'G';

if($asc>=-17922&&$asc<=-17418) return'H';

if($asc>=-17417&&$asc<=-16475) return'J';

if($asc>=-16474&&$asc<=-16213) return'K';

if($asc>=-16212&&$asc<=-15641 || $asc==-7182 || $asc==-6928 ) return'L';

if($asc>=-15640&&$asc<=-15166) return'M';

if($asc>=-15165&&$asc<=-14923) return'N';

if($asc>=-14922&&$asc<=-14915) return'O';

if($asc>=-14914&&$asc<=-14631 || $asc==-6745) return'P';

if($asc>=-14630&&$asc<=-14150 || $asc==-7703) return'Q';

if($asc>=-14149&&$asc<=-14091) return'R';

if($asc>=-14090&&$asc<=-13319) return'S';

if($asc>=-13318&&$asc<=-12839) return'T';

if($asc>=-12838&&$asc<=-12557) return'W';

if($asc>=-12556&&$asc<=-11848) return'X';

if($asc>=-11847&&$asc<=-11056) return'Y';

if($asc>=-11055&&$asc<=-10247) return'Z';

return null;

}

//调用方法: $this->_getFirstCharter('张家口');

//然后下一步,要对这个二维数据排序。我思考了很久,后来想到了方案,先在循环里调用这个取首字母的方法,然后以这个字母作为key,因为php里有根据key排序的方法,所以我的代码写成这样就搞定了:

public function getRegionlist()

{

$regionData = $this->_regionNamesArray();

$settlesRes = array();

foreach ($regionData as $key=>$sett){

$name = $sett['name'];

$nameFirstChar = $this->_getFirstCharter($name); //取出第一个汉字的首字母

$settlesRes[$nameFirstChar][] = $sett;//以这个首字母作为key

}

ksort($settlesRes);

return $settlesRes;

}

/**

* 城市名称

*/

public function _regionNamesArray()

{

//获取rid和城市name

$result = UtilityGetSystemLocationRegionList::select('rid','name')->where('valid','=','T')->get()->toArray();

return $result;

}

mysql城市表含字首字母_城市列表取汉字的第一个字的首字母并排序功能相关推荐

  1. 城市列表取汉字的第一个字的首字母并排序功能

    先上图效果: 数据结构原来是这样: Array ([0] => Array([sid] => 2885842[recetcstoredpay] => 24000[recetclpri ...

  2. php取汉字第一个字,php---------取汉字的第一个字的首字母

    2019独角兽企业重金招聘Python工程师标准>>> 开发中用到的方法,取出第一个汉字的首字母: /** * 取汉字的第一个字的首字母 * @param string $str * ...

  3. mysql insert表名前不写字段_云计算教程分享Mysql技术知识点

    云计算教程分享Mysql技术知识点,首先来讲一下Mysql语句精进 安装数据库,然后导入tigerfive.sql. sql见文档结尾部分 MySQL示例数据库模式由以下表组成: - customer ...

  4. java pinyin4j 首字母_通讯录之按汉字首字母排序 --java--pinyin4J

    最近开发手机端OA系统通讯录时遇到了用汉字首字母排序的问题,各种谷歌后发现了一个轮子pinyin4J,这个轮子是可以将汉字转换成字母拼音,个人觉得很好用,完美的解决了排序的问题,分享一下. 一.工具介 ...

  5. mysql设置表名字为占位符_这可能是把MySQL存储引擎讲解的最清楚的一篇文章了

    存储引擎是MySQL的组件,用于处理不同表类型的SQL操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能. 使用哪一种引擎可以灵活选择,一个数据 ...

  6. mysql某个表被行锁了_一文搞懂MySQL行锁、表锁、间隙锁详解

    准备工作 创建表 tb_innodb_lock drop table if exists test_innodb_lock; CREATE TABLE test_innodb_lock ( a INT ...

  7. word段落每行首字怎么对齐_如何将emword/em中上下两行文字首字对齐?-word 左右对齐,word同一行不同...

    格式工具栏里有个按钮"分散对齐", 选中第一行点按钮,输入新文字宽度10.就ok了 以2007为例: 1.选择这部分内容,鼠标右键->选择"段落"抄,弹出 ...

  8. mysql向表中填入数据_教你快速掌握如何向MySQL的表中录入数据

    当我们建好数据库及表后,首先想到的就是向数据库的表中输入数据.下面我们就来探讨一下如何向数据库增加数据: 1.常用的方法是insert语句 以下为引用的内容: insert into tablenam ...

  9. mysql多表同步es一个索引_使用 Logstash 同步多个数据表到 Elasticsearch 同一个索引 (Index)...

    最近使用了 ELK 做搜索,出报表,由于我们的业务数据很多,汇总起来有近 200 个字段,刚开始写了一个庞大的视图通过 Logstash 同步到 Elasticsearch,但是遇到了很多问题: 1. ...

最新文章

  1. 学习Java需要达到的25个目标
  2. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识
  3. bzoj4639 博士的选取器
  4. AngularJS中页面传参方法
  5. 究竟哪种取数据的方式最快?
  6. Linux修改history存储的最大记录数
  7. yum提示“Cannot retrieve metalink for repository: epel/x86_64” 解决方法
  8. ffmpeg之YUV420P转RGB24
  9. 模拟电路全系列复习题 恶补知识点
  10. MS word自带公式编辑器、MathType、AxMath三种公式编辑器的比较
  11. 基于51单片机220V交流电流检测系统过流阈值报警方案原理图
  12. 腾讯会议PPT演讲者模式
  13. 服务器系统计划任务不执行,Windows 2008 r2任务计划程序执行批处理失败问题解决方法...
  14. LiveCharts
  15. 阿里云解析是什么?个人版和企业版有什么区别?
  16. 使用Scratch2和ROS进行机器人图形化编程学习
  17. R语言 | 编写自己的函数
  18. 完整的SEO团队应该包括哪些人员(细分八要职)
  19. HC32L系列MCU在KEIL新建工程后在JLINK 下 SW Device下找不到设备的解决方法
  20. 知识图谱在金融领域的应用

热门文章

  1. 罕见类加载冲突问题:LinkageError
  2. 某X建工OA系统上传附件插件丢失的问题解决方案
  3. 小六的搜索笔记(转)
  4. layabox - 龙骨动画
  5. php限制文件类型,限制上传文件类型程序代码_PHP教程
  6. linux赋予文件夹所有权限_linux赋予用户文件夹权限
  7. python怎么遍历文件夹内的删除文件_python遍历文件夹并删除特定格式文件的示例...
  8. DVWA靶场--文件上传漏洞(low、medium、high等级)
  9. 中南财经政法大学大学21年计算机考研情况 专硕进复试平均分343.4分
  10. 记一款bug管理系统(bugdone.cn)的开发过程(1) -- 为什么要开发一款bug开发系统