Grow your CSS skills. Land your dream job.

Last updated on:

Separate First and Last Name

$name = "John S Smith";

list($fname, $lname) = split(' ', $name,2);

echo "First Name: $fname, Last Name: $lname";

Works with or without middle name.


  1. Orves
    Permalink to comment#
    $name = "John S. Doe";
    list($fname, $lname) = explode(' ', $name,2);
    echo "First Name: $fname, Last Name: $lname";

    split() function is deprecated in PHP > 5.3

  2. Mike
    Permalink to comment#

    Or maybe something more like this to literally get their first and last name, no matter how much junk they enter

    $name = "James Samuel Murphy 'I took that waaaaay too far' Adams";
    list( $fname, $mname, $lname ) = explode( ' ', $name, 3 );		
    if ( is_null($lname) ) //Meaning only two names were entered...
        $lastname = $mname;
        $lname = explode( ' ', $lname );
        $size = sizeof($lname);
        $lastname = $lname[$size-1];
    echo "First Name: $fname, Last Name: $lastname";
  3. Permalink to comment#

    Perhaps a better way to go would be to strip multiple whitespace from the name before exploding it.
    Like this:

    list($fname,$lname) = explode(‘ ‘, str_replace(‘/\s+/gi’,’ ‘,$name), 2);

  4. Note that with the limit in place, $lname always ends up with the middle names and/or initials. Also, to make this accurate with the limit param in place, you need to ensure that there are no extra spaces. preg_split with a look ahead assertion can solve these two issues with one line of code still:

    list($fname,$lname) = preg_split('/\s+(?=[^\s]+$)/', $name, 2); 
  5. Immanuelprabhu
    Permalink to comment#

    Hi, help me to split my name IMMANUELPRABHU JOSHUA into First name, Middle name & Surname


  6. Now time is for using explode() function :).

  7. Preet
    Permalink to comment#

    Easy just do this:

    $msgString = "Manpreet Singh Marwaha";
    $result = explode(" ",$msgString);
    echo $result[0]; //Manpreet
    echo $result[1]; //Singh
    echo $result[2]; //Marwaha


Leave a Comment

Posting Code

Markdown is supported in the comment area, so you can write inline code in backticks like `this` or multiline blocks of code in in triple backtick fences like this:

<div>Example code</div>

You don't need to escape code in backticks, Markdown does that for you. If anything screws up, contact us and we can fix it up for you.

*May or may not contain any actual "CSS" or "Tricks".