PHP分割函数

5

我只是想知道是否有一种方法可以将此代码写成一行。

$exp = explode(" ", $text);
$cut = $exp[0];

所以不需要分配变量。
谢谢。
4个回答

8

如果你只想要第一部分,那么避免使用数组解决方法,可以使用strtok函数:

$cut = strtok($text, " ");

它会从字符串中截取第一个分隔符(在您的情况下是空格)之前的内容。

5
这是一个非常好的答案,除非第一个字符是 " ",否则它可以完美地运行。OP问题的结果将是一个空字符串,而您的答案的结果将是从位置1的字符到下一个空格的字符串。无论如何加一分。 - AndersTornkvist
@richard86:有趣。我从未意识到它实际上会跳过第一个非分隔符。通常会应用 trim() 来获得这种确切的行为。但如果您可能需要/期望一个空字符串部分,那么这与 explode 的区别就很大了。 - mario

4

3
$var = reset(explode(" ", $text));

但最终你将得到一个 $var,它具有第一个元素(就像问题的 $cut 一样,但没有完整数组的任何内容,比如 $exp)。 - Nanne
这也会产生一个错误:Strict Standards: Only variables should be passed by reference - meze
@Nanne。这是OP的问题。 - PeeHaa
哦,我想我留了另一个评论?无论如何 @问题:你是对的:D我忽略了那行,因为不指定任何东西,这将是相当无意义的,但将其解释为“没有额外分配任何东西”,这是相当有效的 :) - Nanne

3
$cut = substr ( $text, 0, strpos ( $text, ' ' ) );

或者

$cut = substr ( trim ( $text ), 0, strpos ( trim ( $text ), ' ' ) );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接