zéro ou plusieurs espaces implique que soit chaque élément aura au plus un caractère, soit que vous aurez une infinité d'éléments vides. Etes-vous sûr que c'est ce que vous voulez?
bdonlan
Ouais, cela devrait probablement être "un ou plusieurs espaces".
Les réponses fournies par d'autres personnes (Ben James) sont assez bonnes et je les ai utilisées. Comme le souligne user889030, le dernier élément du tableau peut être vide. En fait, les premier et dernier éléments du tableau peuvent être vides. Le code ci-dessous résout les deux problèmes.
# 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 peu importe, vous pouvez simplement vous diviser sur un espace avec exploser. Jusqu'à ce que vous souhaitiez utiliser ces valeurs, parcourez les valeurs éclatées et supprimez les blancs.
$str ="A B C D";
$s = explode(" ",$str);foreach($s as $a=>$b){if( trim($b)){print"using $b\n";}}
Réponses:
la source
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Pour séparer par onglets:
Pour séparer par espaces / tabulations / retours à la ligne:
Pour séparer par des espaces seuls:
$comp = preg_split('/ +/', $var);
la source
Cela marche:
la source
L'auteur a demandé d'exploser, vous pouvez utiliser exploser comme ça
$resultArray = explode("\t", $inputString);
Remarque: vous devez utiliser des guillemets doubles, pas des guillemets simples.
la source
Je pense que tu veux
preg_split
:la source
au lieu d'utiliser exploser, essayez preg_split: http://www.php.net/manual/en/function.preg-split.php
la source
Afin de tenir compte de l' espace pleine largeur tel que
vous pouvez étendre la réponse de Bens à ceci:
Sources:
(Je n'ai pas assez de réputation pour publier un commentaire, alors j'ai écrit ceci comme réponse.)
la source
Les réponses fournies par d'autres personnes (Ben James) sont assez bonnes et je les ai utilisées. Comme le souligne user889030, le dernier élément du tableau peut être vide. En fait, les premier et dernier éléments du tableau peuvent être vides. Le code ci-dessous résout les deux problèmes.
la source
la source
@OP peu importe, vous pouvez simplement vous diviser sur un espace avec exploser. Jusqu'à ce que vous souhaitiez utiliser ces valeurs, parcourez les valeurs éclatées et supprimez les blancs.
la source