使用php拆分名称字符串

时间:2017-09-13 18:00:20

标签: php string split phpmyadmin

如何使用php分割字符串?

例如,我有一个表,其中列是人的全名。

wholename
-------------
Smith, John B.
Pascal, Mary Anne A.
Dela Cruz, James Mark

然后我想将其拆分为三个部分lastnamefirstnamemiddleinital

lastname        firstname       middleinitial
----------      ----------      ----------      
Smith           John            B.
Pascal          Mary Anne       A.
Dela Cruz       James Mark

然后我想把它输出到一个网站。到目前为止,我的代码只将整个名称存储在会话字符串中。

2 个答案:

答案 0 :(得分:0)

以下是Split first and last name的答案。

现在使用变量$firstName,你得到中间名,其中第一个名字有点。

if(strpos($nome, "."))
{
    $middlename = substr($firstname, strrpos($firstname, " "));
    $firstname = substr($firstname, 0, strrpos($firstname, " "));
}

答案 1 :(得分:0)

假设使用此格式,您可以使用此正则表达式执行此操作:

$regex = '/(?P<lastname>[a-zA-Z ]+)\,\s(?P<firstname>[a-zA-Z ]+)(\s(?P<middleinitial>\w\.)|$)/';
$wholenames = ['Smith, John B.', 'Pascal, Mary Anne A.', 'Dela Cruz, James Mark'];
foreach ($wholenames as $wholename) {
    preg_match($regex, $wholename, $matches);
    var_dump($matches['lastname']);
    var_dump($matches['firstname']);
    var_dump($matches['middleinitial']);
    echo "-------------\n";
}

输出:

string(5) "Smith"
string(4) "John"
string(2) "B."
-------------
string(6) "Pascal"
string(9) "Mary Anne"
string(2) "A."
-------------
string(9) "Dela Cruz"
string(10) "James Mark"
NULL
-------------