将名称字符串分隔为姓氏和名字

时间:2017-03-23 19:22:13

标签: php

如果我对名字和姓氏使用相同的名称或使用'我的名字拆分功能没有按预期工作。即使字符串如下所示,我怎样才能使它工作:

  1. Jeanne D' Arc
  2. 郎朗
  3. 第一个将返回$ last_name字符串中的整个名称,第二个将仅返回$last_name字符串中的一个名称。

    function split_name($name) {
        $name = trim($name);
        $last_name = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name);
        $first_name = trim( preg_replace('#'.$last_name.'#', '', $name ) );
        return array($first_name, $last_name);
    }
    

    谢谢!

2 个答案:

答案 0 :(得分:0)

像塞尔吉奥一样回答。看看已经可以用PHP做什么。 explode与split_name做同样的事情。

来源: http://php.net/manual/fr/function.explode.php

答案 1 :(得分:0)

这对我有用!假设您只有一个姓氏,并且它是字符串的最后一个单词,但用户仍然可以编辑它,所以它只是一个起点。谢谢你们。

function split_name($name) {
    $parts = explode(" ", trim($name));
    $num = count($parts);
    if($num > 1)
    {
        $lastname = array_pop($parts);
    }
    else
    {
        $lastname = '';
    }
    $firstname = implode(" ", $parts);
    return array($firstname, $lastname);
}