Comment faire exploser une chaîne par un ou plusieurs espaces ou tabulations?Éclater une chaîne par un ou plusieurs espaces ou tabulations
Exemple:
A B C D
Je veux en faire un tableau.
Comment faire exploser une chaîne par un ou plusieurs espaces ou tabulations?Éclater une chaîne par un ou plusieurs espaces ou tabulations
Exemple:
A B C D
Je veux en faire un tableau.
$parts = preg_split('/\s+/', $str);
$ part dernier élément sera vide .. donc pour l'enlever array_pop ($ parts); – user889030
La réponse de @lucsan doit être la meilleure réponse (https: // stackoverflow.com/a/38481324/1407491) –
au lieu d'utiliser exploser, essayez preg_split: http://www.php.net/manual/en/function.preg-split.php
Cela fonctionne:
$string = 'A B C D';
$arr = preg_split('/[\s]+/', $string);
Je pense que vous voulez preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
@OP n'a pas d'importance , vous pouvez juste diviser sur un espace avec exploser. Jusqu'à ce que vous souhaitiez utiliser ces valeurs, passez en revue les valeurs éclatées et ignorez les blancs.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if (trim($b)) {
print "using $b\n";
}
}
Qu'en est-il des valeurs délimitées par des tabulations? – dotancohen
Les valeurs délimitées par des tabulations ne seront pas explosées, alors poussez. – NekojiruSou
à séparer par onglets:
$comp = preg_split("/[\t]/", $var);
Pour séparer par des espaces/tabs/newlines:
$comp = preg_split('/\s+/', $var);
pour séparer par des espaces seul:
$comp = preg_split('/ +/', $var);
Dans pour rendre compte de espace pleine largeur tels que
full width
vous pouvez étendre Bens réponse à ceci:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Sources:
(je n'ai pas assez réputation pour poster un commentaire, donc j'écrit cela comme une réponse.)
L'auteur a demandé d'exploser, vous pouvez utiliser exploser comme ça
$resultArray = explode("\t", $inputString);
Note: vous devez utiliser un guillemet double, pas un seul.
A travaillé pour moi et est un peu plus simple que d'utiliser la puissance sombre des expressions régulières. – ddtpoison777
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);
?>
zéro ou plusieurs espaces implique que soit chaque élément aura au plus un caractère, ou que vous aurez une infinité d'éléments vides. Êtes-vous sûr que c'est ce que vous voulez? – bdonlan
Oui, cela devrait probablement être "un ou plusieurs espaces". –