/**

* 把全名拆分为姓氏和名字

* @param string $fullname 全名

* @return array 一维数组,元素一是姓,元素二为名

* @author: 风柏杨<waitatlee@163.com>

*/

function splitName($fullname){

$hyphenated = array('欧阳','太史','端木','上官','司马','东方','独孤','南宫','万俟','闻人','夏侯','诸葛','尉迟','公羊','赫连','澹台','皇甫',

'宗政','濮阳','公冶','太叔','申屠','公孙','慕容','仲孙','钟离','长孙','宇文','城池','司徒','鲜于','司空','汝嫣','闾丘','子车','亓官',

'司寇','巫马','公西','颛孙','壤驷','公良','漆雕','乐正','宰父','谷梁','拓跋','夹谷','轩辕','令狐','段干','百里','呼延','东郭','南门',

'羊舌','微生','公户','公玉','公仪','梁丘','公仲','公上','公门','公山','公坚','左丘','公伯','西门','公祖','第五','公乘','贯丘','公皙',

'南荣','东里','东宫','仲长','子书','子桑','即墨','达奚','褚师');

$vLength = mb_strlen($fullname, 'utf-8');

$lastname = '';

$firstname = '';//前为姓,后为名

if($vLength > 2){

$preTwoWords = mb_substr($fullname, 0, 2, 'utf-8');//取命名的前两个字,看是否在复姓库中

if(in_array($preTwoWords, $hyphenated)){

$lastname = $preTwoWords;

$firstname = mb_substr($fullname, 2, 10, 'utf-8');

}else{

$lastname = mb_substr($fullname, 0, 1, 'utf-8');

$firstname = mb_substr($fullname, 1, 10, 'utf-8');

}

}else if($vLength == 2){//全名只有两个字时,以前一个为姓,后一下为名

$lastname = mb_substr($fullname ,0, 1, 'utf-8');

$firstname = mb_substr($fullname, 1, 10, 'utf-8');

}else{

$lastname = $fullname;

}

return array($lastname, $firstname);

}

姓名拆分为姓氏和名字的方法相关推荐

  1. php取名字的姓,姓名拆分为姓氏和名字的方法[php版]

    /** * 把全名拆分为姓氏和名字 * @param string $fullname 全名 * @return array 一维数组,元素一是姓,元素二为名 * @author: 风柏杨 */ fu ...

  2. 提取文章中的人名php,php中实现将姓名拆分为姓氏和名字

    之前有分享了用javascript在客户端进行姓名拆分的方法,后应项目需要,又用PHP实现了,贴出来 跟大家分享交流: /** * 拆分姓名(姓氏和名字) * @param string $fulln ...

  3. MySQL数据库中,字符串拆分(如将英文姓名拆分为姓氏和名字两个字段)

    文章目录 前言 处理办法 前言 在开发工作中,遇到这样一个问题,之前客户将用户英文姓名存储在一个字段中如:Bin ZHOU 或 Bruce THOMEAS 这种形式.后期客户又想将将姓氏和名字分开存, ...

  4. php 姓氏表,PHP拆分姓名中的姓氏和名字函数

    /** * 拆分姓名(姓氏和名字) * @param string $fullname 全名(如:百里屠苏) * @return array 一维数组[0=>'姓氏',1=>'名称'] * ...

  5. PHP复姓判断,PHP拆分姓名中的姓氏和名字函数

    /** * 拆分姓名(姓氏和名字) * @param string $fullname 全名(如:百里屠苏) * @return array 一维数组[0=>'姓氏',1=>'名称'] * ...

  6. sqlserver 人名_mssql sqlserver 使用sql脚本生成随机中文名字的方法分享

    摘要: 下文使用sql脚本生成中文名字的方法分享,如下所示: 实验环境:sql server 2008 R2 在工作中,我们有时需要批量生成随机姓名,下面将讲述使用sql脚本生成随机"名字& ...

  7. 爬虫虎牙网站lol主播人气和姓名(附人气值排名新方法)

    爬虫虎牙网站lol主播人气和姓名(附人气值排名新方法) 大家好,我是bd,新人小白,这是我第一次尝试将自己对于爬虫知识的一些心得分享给大家.由于是最近刚接触python,所以在学习完爬虫这个知识点后自 ...

  8. CFA报名:give name/first name是姓氏还是名字呢?

    https://www.gfedu.cn/cfa/content_32848.shtml 很多小伙伴都不清楚在报名的时候一些问题的填写,今天小编给大家分享一下CFA报名:give name/first ...

  9. 离开当前屏幕的判断方法_EXCEL 一个工作表如何快速拆分多个工作表的方法

    下面说下在一个工作簿里把里面的一个工作表依据实际需求的条件内容,快速拆分成多个工作表方法. 1.打开excel文件,现在需要依据地区和国家这个条件,分别单独生成不同的工作表出来,最原始的方法是手动新建 ...

最新文章

  1. IdentityHash as hashMap
  2. python和java和scala_有没有与python3相当的scala/java收藏。国家
  3. C++11语言新特性-《C++标准库(第二版)》读书笔记
  4. 【MATLAB】绘图技巧(4)——网格线与边框线控制
  5. oracle索引自增函数,oracle生成动态前缀且自增号码的函数分享
  6. osgi cxf_所有OSGi套件的通用CXF请求拦截器
  7. 前端学习(3179):ant-design介绍2
  8. 数据库异常---ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环
  9. ASP.NET JS常用方法类
  10. 借助Bilibili Evolved批量下载b站视频
  11. RTX 2080 Ti 刚捂热,卡皇3080Ti 就要来了?
  12. MySQL从入门到精通之sql语言---(9月2日更新)
  13. Excel#整体增加相同行高的宏命令#
  14. Android触摸事件实现笔触画布
  15. 【Linux】【编译相关】execvp: /bin/sh: Argument list too long问题处理小结
  16. ubuntu 终端常用命令大全
  17. linux查看php端口,Linux如何查看端口状态
  18. 视频号新手必备:定位、涨粉、私域全攻略
  19. switch写打折促销活动C语言,求C语言大神编一个程序(分别用switch和if-else结构)某商店推出打折活动,要求购物达到或超过2000元的...
  20. 寻找网络1020的结构平衡点

热门文章

  1. 如何用 C 语言写一个生日蛋糕?
  2. iOS Xcode中UIButton文字换行
  3. 【信息安全】EDR、HIDS、NDR、MDR、XDR 区别与联系
  4. 流向的改变(direciton与unicode-bidi)
  5. C#语言实例源码系列-实现Word转换TXT
  6. grep -A -B -C使用介绍
  7. CAS5.3自定义密码(LADP)认证(三)
  8. C语言lseek()函数和 fseek()函数 rewind函数
  9. 此次边路调整系统推荐射手走哪路_此次边路的调整系统会推荐射手走什么路呢...
  10. 车载以太网测试知识点