41

我有一个这样的字符串:

红色 黄色 蓝色

我想得到一个这样的数组:

数组( [0] => 红色 [1] => 黄色蓝色)

如何在字符串的第一个空格处拆分?我的代码不起作用

<?php
$str = "red yellow blue";
$preg = preg_split("/^\s+/", $str);
print_r($preg);
?>

请帮我。

4

6 回答 6

107

explode有限制地使用:

$array = explode(' ', $string, 2);

附带说明:第三个参数 ofpreg_split与 for 的参数相同explode,因此您也可以这样编写代码:

$array = preg_split('#\s+#', $string, 2);

参考:

PHP:爆炸

PHP: preg_split

于 2013-04-25T12:21:25.517 回答
10
<?php
$string = "red yellow blue";
$result = explode(" ", $string, 2);
print_r($result);
?>

爆炸吧

于 2013-04-25T12:22:18.147 回答
4

您可以像这样使用爆炸功能

print_r(explode(' ', $str, 2));

它将设置一个限制。在这里查看更多信息

于 2013-04-25T12:21:29.837 回答
2

您可以使用explode,但如果您不是 100% 确定每次都会有相同的空格数(爆炸),您可以使用ltrim删除第一个单词和空格

<?php
$full='John Doe Jr.';
$full1=explode(' ', $full);
$first=$full1[0];
$rest=ltrim($full, $first.' ');
echo "$first + $rest";
?>
于 2013-07-18T22:52:42.770 回答
-2

函数 splitName($name) { $parts = explode(' ', $name); return array('firstname' => array_shift($parts), 'lastname' => join('', $parts)); }

于 2021-04-27T09:16:45.933 回答
-6

您可以通过这种方式 使用爆炸:

  $stringText  = "red yellow blue";
  $colours = explode(" ", $stringText);
  echo $colours[0]; //red 
  echo $colours[1]; //yellow
  echo $colours[2]; //blue

也可以通过 foreach 循环获取 $colours 的所有元素,但在这种情况下,explode 更好

于 2016-05-12T10:35:57.920 回答