给定一个字符串
$str= "name1 surname2, name2 midname2 surname2";
有两个人,一个有两个值(姓名,姓氏),另一个有中间名。我想在知道哪个名字属于哪个人时分别获取所有这些名称,如:
foreach ($persons as person){
if( person has midname){
$value1 ="name"; $value2= "midname"; $value3="surname"
}
else
$value1="name"; $value2="surname"
}
答案 0 :(得分:3)
PHP的explode()将帮助你解决很多问题:
$str = "name1 surname2, name2 midname2 surname2";
$people = explode(',', $str);
foreach($people as $person)
{
$names = explode(' ', $person);
switch(count($names))
{
case 3:
$value1 = $name[0];
$value2 = $name[1];
$value3 = $name[2];
break;
case 2:
default:
$value1 = $name[0];
$value2 = $name[1];
break;
}
}
修改强>
正如dm03514所正确指出的那样:如果这个人的任何一个名字都有空格(即'De Luca'的姓氏),这将不起作用。但是,如果没有某些限制或在名称来源强制执行的验证,这就会非常接近。