从fullname中提取firstname和lastname的php代码

从fullname中提取firstname和lastname的php代码,php,easyphp,Php,Easyphp,我是php的初学者。我想从全名中提取名字和姓氏。以下是我的代码:- <?php $str= "fname lname"; $len=strlen($str); $s=""; for($i=0;i<=$len;$i++) { $sub=substr($str,$i,($i+1)); if($sub!=" ") { $s=s+$sub; } else {break;} } echo $s; ?> 这段代码的问题是循环无限运行,并导致致命错误。 任何帮助都将不胜感激。这是一种快

我是php的初学者。我想从全名中提取名字和姓氏。以下是我的代码:-

<?php
$str= "fname lname";
$len=strlen($str);
$s="";
for($i=0;i<=$len;$i++)
{
$sub=substr($str,$i,($i+1));
if($sub!=" ")
{
$s=s+$sub;
}
else {break;}
}
echo $s;
?>

这段代码的问题是循环无限运行,并导致致命错误。
任何帮助都将不胜感激。

这是一种快速简便的方法

$name = 'John Smith';

list($firstName, $lastName) = explode(' ', $name);

echo $firstName;
echo $lastName;
但如果你想考虑中间名等

$name = 'John Mark Smith';
$name = explode(' ', $name);

$firstName = $name[0];
$lastName = (isset($name[count($name)-1])) ? $name[count($name)-1] : '';

第二种方法会更好,因为它也适用于一个名称。

这是一种快速简便的方法

$name = 'John Smith';

list($firstName, $lastName) = explode(' ', $name);

echo $firstName;
echo $lastName;
但如果你想考虑中间名等

$name = 'John Mark Smith';
$name = explode(' ', $name);

$firstName = $name[0];
$lastName = (isset($name[count($name)-1])) ? $name[count($name)-1] : '';

第二种方法会更好,因为它也适用于一个名称。

在某些情况下,这里的一些其他答案会导致未定义的错误。我会:

$names = explode(' ', $fullname, 2 );
$fname = array_shift( $names );
$lname = array_shift( $names ) or $lname = '';

在某些情况下,这里的一些其他答案将导致未定义的错误。我会:

$names = explode(' ', $fullname, 2 );
$fname = array_shift( $names );
$lname = array_shift( $names ) or $lname = '';
例如:


示例:


拆分名称(“约翰·亚当·麦克马斯特”)//示例(1)输出阵列([0]=>John[1]=>McMaster)

拆分名称(“约翰·亚当·麦克马斯特”)//示例(2)输出数组([FirstName]=>John[LastName]=>McMaster)

拆分名称(“约翰·亚当·麦克马斯特”)//示例(1)输出阵列([0]=>John[1]=>McMaster)


拆分名称(“约翰·亚当·麦克马斯特”)//示例(2)输出数组([FirstName]=>John[LastName]=>McMaster)

lol…很简单…请等13分钟,这样我就可以接受你的答案了lol…很简单…请等13分钟,这样我就可以接受你的答案了