我有一个像这样的字符串:
$message="AB 1234 Hello, how are you?
我想要像这样:$message[0] = AB
$message[1] = 1234
$message[2] = Hello, how are you?
请不要建议使用 substr 函数,因为前两个单词的长度可能会有所变化,但它们之间将有空格。还有其他建议吗?
我有一个像这样的字符串:
$message="AB 1234 Hello, how are you?
我想要像这样:$message[0] = AB
$message[1] = 1234
$message[2] = Hello, how are you?
请不要建议使用 substr 函数,因为前两个单词的长度可能会有所变化,但它们之间将有空格。还有其他建议吗?
使用带有限制的explode()
函数,例如:
$message = explode(' ', $message, 3);
preg_split()
进行类似的操作。$message = preg_split('/[\s,]+/', $message, 3)
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
output:
//piece1
//piece2
$words = preg_split("/\s+/", $str);
preg_split()
的limit参数(感谢Phil)。preg_split()
函数也有一个限制参数哦 ;) - Phil请查看sscanf,同时务必阅读用户提交的评论。您可以在http://www.cplusplus.com/reference/clibrary/cstdio/scanf/找到更好的格式描述。
<?php
$string = 'AB 1234 Hello, how are you?';
$array = sscanf($string, '%s %d %[^$]');
var_dump($array);
/*
array(3) {
[0]=>
string(2) "AB"
[1]=>
int(1234)
[2]=>
string(19) "Hello, how are you?"
}
*/