以逗号分隔的方式获取字段

时间:2012-02-21 18:06:58

标签: php

给定一个字符串

$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"   
}

1 个答案:

答案 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'的姓氏),这将不起作用。但是,如果没有某些限制或在名称来源强制执行的验证,这就会非常接近。