zero ou mais espaços implica que cada elemento terá no máximo um caractere ou que você terá infinitos elementos vazios. Tem certeza de que é isso que você quer?
24410 bdonlan
Sim, isso provavelmente deve ser "um ou mais espaços".
As respostas fornecidas por outras pessoas (Ben James) são muito boas e eu as usei. Como user889030 aponta, o último elemento da matriz pode estar vazio. Na verdade, o primeiro e o último elemento da matriz podem estar vazios. O código abaixo aborda os dois problemas.
# Split an input string into an array of substrings using any set# whitespace charactersfunction explode_whitespace($str){# Split the input string into an array
$parts = preg_split('/\s+/', $str);# Get the size of the array of substrings
$sizeParts =sizeof($parts);# Check if the last element of the array is a zero-length stringif($sizeParts >0){
$lastPart = $parts[$sizeParts-1];if($lastPart ==''){
array_pop($parts);
$sizeParts--;}# Check if the first element of the array is a zero-length stringif($sizeParts >0){
$firstPart = $parts[0];if($firstPart =='')
array_shift($parts);}}return $parts;}
Explodestringby one or more spaces or tabs in php example as follow:<?php
$str ="test1 test2 test3 test4";
$result = preg_split('/[\s]+/', $str);
var_dump($result);?>/** To seperate by spaces alone: **/<?php
$string ="p q r s t";
$res = preg_split('/ +/', $string);
var_dump($res);?>
@OP não importa, você pode simplesmente dividir um espaço com explodir. Até que você queira usar esses valores, itere sobre os valores explodidos e descarte os espaços em branco.
$str ="A B C D";
$s = explode(" ",$str);foreach($s as $a=>$b){if( trim($b)){print"using $b\n";}}
Respostas:
fonte
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Para separar por guias:
Para separar por espaços / guias / novas linhas:
Para separar apenas por espaços:
$comp = preg_split('/ +/', $var);
fonte
Isso funciona:
fonte
O autor pediu explosão, para você poder usar explosão assim
$resultArray = explode("\t", $inputString);
Nota: você deve usar aspas duplas, não simples.
fonte
Eu acho que você quer
preg_split
:fonte
em vez de usar o explodir, tente preg_split: http://www.php.net/manual/en/function.preg-split.php
fonte
Para ter em conta o espaço de largura total , como
você pode estender a resposta de Bens para isso:
Fontes:
(Como não tenho reputação suficiente para postar um comentário, escrevi isso como resposta.)
fonte
As respostas fornecidas por outras pessoas (Ben James) são muito boas e eu as usei. Como user889030 aponta, o último elemento da matriz pode estar vazio. Na verdade, o primeiro e o último elemento da matriz podem estar vazios. O código abaixo aborda os dois problemas.
fonte
fonte
@OP não importa, você pode simplesmente dividir um espaço com explodir. Até que você queira usar esses valores, itere sobre os valores explodidos e descarte os espaços em branco.
fonte