Получение первых двух слов из строки в php

У меня строка вроде:

$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) 

Демо – http://codepad.org/1gLJEFIa

вы можете использовать следующую функцию.

 // 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() для ограничения (спасибо 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?" } */