0

这是我的代码,目前我能够成功地将它分成两个变量

$string="life really";
list($firstName, $lastName) = explode(" ", $string);
echo $firstName;  
echo $lastName;  

输出会像

life
really

这是我的第二次尝试

$string="life really suck";
list($firstName, $lastName) = explode(" ", $string);
echo $firstName;  
echo $lastName;  

它只回显字符串中的第一个和最后一个单词

这就是生活和糟糕,它没有在 $lastname 中捕捉到“真的很糟糕”

我想要做的是,我想捕获 $firstname 中的第一个单词并捕获第一个空格之后的任何内容并放置在 $lastname 中。

可能吗?

4

4 回答 4

4

根据PHP 手册explode有一个可选的第三个参数,指定函数可以返回多少元素的限制。使用此限制,您可以使函数将第一个匹配项放在第一个元素中,将字符串的其余部分放在第二个元素中。

例子:

$string="life really suck";
list($firstName, $lastName) = explode(" ", $string, 2); // Added argument 2
echo $firstName;
echo $lastName;

http://ideone.com/Vu0GUz

于 2013-07-24T12:32:44.087 回答
1

这提供了一个正确的解决方案:给定一个像 "ABCD ..." 这样的字符串将返回 2 个变量:

$v1 = "A"; $v2 = "BCD ...";

这是代码。

$string="life really suck a lot";
$parts = explode(" ", $string);
$v1 = array_shift($parts);
$v2 = implode(" ", $parts);

输出:

$v1 = "生活"

$v2 = "真的很烂";

于 2013-07-24T12:35:21.513 回答
0

尝试这个。

<?php
    $string="life really suck";
    list($firstName, $middlename, $lastName) = explode(" ", $string);
    echo $firstName; 
    echo $middlename;   
    echo $lastName;  
?>
于 2013-07-24T12:38:32.603 回答
0

尝试这个 :

$string="life really suck";
preg_match("/(?P<firstname>\w+) (?P<lastname>.*)/",$string,$match);

extract($match);
echo $firstname;
echo "<br>";
echo $lastname;
于 2013-07-24T12:34:20.233 回答