Разделение строки в PHP с каждым пробелом

У меня есть вход, где пользователь может вводить несколько слов, и им предлагается разделить его пробелом. Поэтому ввод может выглядеть следующим образом:

foo 

или вот так:

 foo bar php js 

Как я могу проверить пробелы, а если есть пробелы, разделите слова, а затем поместите их в массив? Я прокручу этот массив в моей программе. Я просто новичок в обработке строк, как это.

См. explode

 // Example 1 $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 

Да, взрыва будет делать все для вас, и foreach может использоваться для извлечения значений из массива снова. Ваш полный код будет выглядеть следующим образом:

 $str = "foo bar php js"; $arr = explode(" ", $str); //print all the value which are in the array foreach($arr as $v){ echo $v; } 

Надеюсь, что это поможет вам.

Даниэль уже опубликовал про скользкую часть, позвольте мне добавить проверку на космическую часть.

 $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pizaa = trim($pizza); if(strpos($pizza,' ') >= 0) { $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 }else { echo $pizza; } 

Как сказал Даниэль, explode() идеально подходит для такого рода ситуаций. Вы также можете посмотреть на preg_split() (чисто для будущей ссылки), поскольку он принимает регулярное выражение, а не просто простой разделитель и позволит вам разбить ввод на более сложный шаблон.

Для целей оптимизации я считаю, что лучше использовать избыточные пространства, например, двойные пробелы, прежде чем использовать функцию разрыва. например: если у вас есть "foo bar php js " эта строка должна стать "foo bar php js" перед использованием функции explode. вы можете попробовать этот код:

 $charSet = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $charSet); $charSet = rtrim($charSet); $charSetArray = explode(" ", $charSet); echo $charSetArray[0]; echo $charSetArray[1];