Wie kann ich eine Zeichenfolge durch ein oder mehrere Leerzeichen oder Tabulatoren auflösen?
Beispiel:
A B C D
Ich möchte dies zu einem Array machen.
Wie kann ich eine Zeichenfolge durch ein oder mehrere Leerzeichen oder Tabulatoren auflösen?
Beispiel:
A B C D
Ich möchte dies zu einem Array machen.
Antworten:
$parts = preg_split('/\s+/', $str);
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Der Autor hat nach Explosion gefragt, damit Sie Explosion so verwenden können
$resultArray = explode("\t", $inputString);
Hinweis: Sie müssen ein doppeltes Anführungszeichen verwenden, kein einfaches.
Ich denke du willst preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
Versuchen Sie statt explode preg_split: http://www.php.net/manual/en/function.preg-split.php
Um Raum voller Breite wie z
full width
Sie können Bens Antwort darauf erweitern:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Quellen:
(Ich habe nicht genug Ruf, um einen Kommentar zu schreiben, deshalb habe ich dies als Antwort geschrieben.)
Die Antworten anderer Leute (Ben James) sind ziemlich gut und ich habe sie verwendet. Wie user889030 hervorhebt, ist das letzte Array-Element möglicherweise leer. Tatsächlich können das erste und das letzte Array-Element leer sein. Der folgende Code behebt beide Probleme.
# 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 es spielt keine Rolle, Sie können einfach auf ein Feld mit Explosion teilen. Bis Sie diese Werte verwenden möchten, durchlaufen Sie die explodierten Werte und verwerfen Sie Leerzeichen.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if ( trim($b) ) {
print "using $b\n";
}
}