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

时间:2013-07-24 12:27:53

标签: php

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

$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 个答案:

答案 0 :(得分:4)

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

示例:

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

http://ideone.com/Vu0GUz

答案 1 :(得分:1)

这提供了一个正确的解决方案:给定像“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 =“非常糟糕”;

答案 2 :(得分:0)

试试这个:

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

extract($match);
echo $firstname;
echo "<br>";
echo $lastname;

答案 3 :(得分:0)

试试这个。

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