Comment puis-je décomposer une chaîne d'un ou plusieurs espaces ou tabulations?
Exemple:
A B C D
Je veux en faire un tableau.
Comment puis-je décomposer une chaîne d'un ou plusieurs espaces ou tabulations?
Exemple:
A B C D
Je veux en faire un tableau.
Réponses:
$parts = preg_split('/\s+/', $str);
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
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.
Je pense que tu veux 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 tenir compte de l' espace pleine largeur tel que
full width
vous pouvez étendre la réponse de Bens à ceci:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Sources:
(Je n'ai pas assez de réputation pour publier un commentaire, alors j'ai écrit ceci comme réponse.)
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 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 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";
}
}