【问题标题】:Split name string using php使用php拆分名称字符串
【发布时间】:2018-02-22 13:14:27
【问题描述】:

如何使用 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

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

【问题讨论】:

    标签: php string split phpmyadmin


    【解决方案1】:

    这里有Split first and last name的答案。

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

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

    【讨论】:

      【解决方案2】:

      假设这种格式,你可以使用这个正则表达式:

      $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
      -------------
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多