Skip to content

Instantly share code, notes, and snippets.

@ewistrand
Last active February 17, 2020 20:11
Show Gist options
  • Save ewistrand/15d2ddc717f74c2b46c4b19a2a6bf03e to your computer and use it in GitHub Desktop.
Save ewistrand/15d2ddc717f74c2b46c4b19a2a6bf03e to your computer and use it in GitHub Desktop.

Revisions

  1. ewistrand revised this gist Feb 17, 2020. No changes.
  2. ewistrand revised this gist Feb 17, 2020. 1 changed file with 19 additions and 17 deletions.
    36 changes: 19 additions & 17 deletions split_name.php
    Original file line number Diff line number Diff line change
    @@ -1,22 +1,24 @@
    function split_name($name) {
    $parts = array();
    if(! function_exists('split_name')) {
    function split_name($name) {
    $parts = array();

    while ( strlen( trim($name)) > 0 ) {
    $name = trim($name);
    $string = preg_replace('#.*\s([\w-]*)$#', '$1', $name);
    $parts[] = $string;
    $name = trim( preg_replace('#'.$string.'#', '', $name ) );
    }
    while ( strlen( trim($name)) > 0 ) {
    $name = trim($name);
    $string = preg_replace('#.*\s([\w-]*)$#', '$1', $name);
    $parts[] = $string;
    $name = trim( preg_replace('#'.$string.'#', '', $name ) );
    }

    if (empty($parts)) {
    return false;
    }
    if (empty($parts)) {
    return false;
    }

    $parts = array_reverse($parts);
    $name = array();
    $name['first_name'] = $parts[0];
    $name['middle_name'] = (isset($parts[2])) ? $parts[1] : '';
    $name['last_name'] = (isset($parts[2])) ? $parts[2] : ( isset($parts[1]) ? $parts[1] : '');
    $parts = array_reverse($parts);
    $name = array();
    $name['first_name'] = $parts[0];
    $name['middle_name'] = (isset($parts[2])) ? $parts[1] : '';
    $name['last_name'] = (isset($parts[2])) ? $parts[2] : ( isset($parts[1]) ? $parts[1] : '');

    return $name;
    return $name;
    }
    }
  3. ewistrand created this gist Feb 17, 2020.
    22 changes: 22 additions & 0 deletions split_name.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    function split_name($name) {
    $parts = array();

    while ( strlen( trim($name)) > 0 ) {
    $name = trim($name);
    $string = preg_replace('#.*\s([\w-]*)$#', '$1', $name);
    $parts[] = $string;
    $name = trim( preg_replace('#'.$string.'#', '', $name ) );
    }

    if (empty($parts)) {
    return false;
    }

    $parts = array_reverse($parts);
    $name = array();
    $name['first_name'] = $parts[0];
    $name['middle_name'] = (isset($parts[2])) ? $parts[1] : '';
    $name['last_name'] = (isset($parts[2])) ? $parts[2] : ( isset($parts[1]) ? $parts[1] : '');

    return $name;
    }