Décomposer chaîne par un ou plusieurs espaces ou des tabulations
Question
Comment puis-je faire exploser une chaîne par un ou plusieurs espaces ou des tabulations?
Exemple:
A B C D
Je veux en faire un tableau.
La solution
$parts = preg_split('/\s+/', $str);
Autres conseils
Pour séparer par des onglets:
$comp = preg_split("/[\t]/", $var);
Pour séparer par des espaces / onglets / retour à la ligne:
$comp = preg_split('/\s+/', $var);
Pour séparer par des espaces seuls:
$comp = preg_split('/ +/', $var);
Cela fonctionne:
$string = 'A B C D';
$arr = preg_split('/[\s]+/', $string);
L'auteur a demandé d'exploser, vous pouvez utiliser exploser comme ça
$resultArray = explode("\t", $inputString);
. Remarque: vous devez utiliser des guillemets doubles, pas simple
Je pense que vous voulez preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
au lieu d'utiliser exploser, essayez preg_split: http: // www. php.net/manual/en/function.preg-split.php
Afin de rendre compte de espace pleine largeur comme
full width
vous pouvez étendre Bens réponse à ceci:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Sources:
- dépouiller espace blanc multi-octets à partir d'une chaîne PHP
- Quels sont tous les caractères japonais blancs
(je n'ai pas assez réputation pour poster un commentaire, donc j'écrit cela comme une réponse.)
Les réponses fournies par d'autres personnes (Ben James) sont très bons et je les ai utilisés. Comme user889030 souligne, le dernier élément de tableau peut être vide. En fait, les premiers et derniers éléments du tableau peuvent être vides. Le code ci-dessous aborde les deux questions.
# Split an input string into an array of substrings using any set
# whitespace characters
function 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 string
if ($sizeParts > 0) {
$lastPart = $parts[$sizeParts-1];
if ($lastPart == '') {
array_pop($parts);
$sizeParts--;
}
# Check if the first element of the array is a zero-length string
if ($sizeParts > 0) {
$firstPart = $parts[0];
if ($firstPart == '')
array_shift($parts);
}
}
return $parts;
}
Explode string by 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 diviser un espace avec exploser. Jusqu'à ce que vous voulez utiliser ces valeurs, les valeurs itérer éclatées et jeter des blancs.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if ( trim($b) ) {
print "using $b\n";
}
}