Получение первых двух слов из строки в php [закрыто]
у меня есть строка типа:
$message="AB 1234 Hello, how are you?
Я хочу сделать так:
$message[0] = AB
$message[1] = 1234
$message[2] = Hello, how are you?
пожалуйста, не предлагайте функцию substr, потому что длина первых двух слов может отличаться, но между ними будут пробелы. Есть другие предложения?
4 ответов
использовать 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
больше информации: http://php.net/manual/en/function.explode.php
Если слова просто первые два куска, разделенные последовательными пробелами, вы могли бы сделать...
$words = preg_split("/\s+/", $str);
Если вы хотите первые два, вы можете использовать preg_split()
предельный аргумент (спасибо Фил).
проверить использования 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?"
}
*/