使用explode()函数将带有2个空格的字符串分解为两个变量


Using explode() function break string with 2 spaces into two variable?

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

$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中第一个空格和位置之后的内容。

有可能吗?

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

示例:

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

http://ideone.com/Vu0GUz

这提供了一个正确的解决方案:给定一个类似"a B C D…"的字符串将返回2个变量:

$v1="A"$v2="B C D…";

这是代码。

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

输出:

$v1="寿命"

$v2="真的很烂";

试试这个:

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

试试这个。

<?php
    $string="life really suck";
    list($firstName, $middlename, $lastName) = explode(" ", $string);
    echo $firstName; 
    echo $middlename;   
    echo $lastName;  
?>