Null oder mehr Leerzeichen bedeuten, dass entweder jedes Element höchstens ein Zeichen enthält oder dass Sie unendlich viele leere Elemente haben. Bist du sicher, dass du das willst?
Bdonlan
Ja, das sollte wahrscheinlich "ein oder mehrere Leerzeichen" sein.
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 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 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";}}
Antworten:
quelle
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
So trennen Sie nach Registerkarten:
So trennen Sie durch Leerzeichen / Tabulatoren / Zeilenumbrüche:
Nur durch Leerzeichen trennen:
$comp = preg_split('/ +/', $var);
quelle
Das funktioniert:
quelle
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.
quelle
Ich denke du willst
preg_split
:quelle
Versuchen Sie statt explode preg_split: http://www.php.net/manual/en/function.preg-split.php
quelle
Um Raum voller Breite wie z
Sie können Bens Antwort darauf erweitern:
Quellen:
(Ich habe nicht genug Ruf, um einen Kommentar zu schreiben, deshalb habe ich dies als Antwort geschrieben.)
quelle
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.
quelle
quelle
@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.
quelle