我在将字符串中的名字和姓氏解析为2个不同的变量时遇到了一些麻烦。
字符串始终采用以下格式:“Smith,John”或“Doe,Jane”
是否有一个函数可以将名字和姓氏分成两个不同的变量,如...
$firstname = "John"
$lastname = "Smith"
答案 0 :(得分:8)
将list
与explode
一起使用,如下所示:
list($firstname, $lastname) = explode(',', $yourString);
您可能需要使用trim
从这些变量中删除任何空格。
答案 1 :(得分:1)
explode()根据另一个字符串拆分字符串并返回一个数组。
你可以这样做:
$name = "Smith, John";
$name_array = array();
$name_array = explode(",", $name);
答案 2 :(得分:1)
我会使用正则表达式,以便输入可能有轻微的变化(即“史密斯,约翰”,“史密斯,约翰”,“史密斯,约翰”或“史密斯,约翰”)
你可以为regexp“\ w([a-z] +)\ w”执行类似的操作,然后姓氏将是您的第一个匹配,名字将是您的第二个匹配。
答案 3 :(得分:1)
$name = "Smith, John";
$expl = explode(', ', $name);
$firstname = $expl[1];
$lastname = $expl[0];
echo $firstname.' '.$lastname;