it-swarm.com.de

Zeichenfolge durch ein oder mehrere Leerzeichen oder Tabulatoren auflösen

Wie kann ich eine Zeichenfolge durch ein oder mehrere Leerzeichen oder Tabulatoren auflösen?

Beispiel: 

A      B      C      D

Ich möchte daraus ein Array machen.

124
DarthVader
$parts = preg_split('/\s+/', $str);
285
Ben James

Durch Tabulatoren trennen:

$comp = preg_split("/[\t]/", $var);

So trennen Sie nach Leerzeichen/Tabulatoren/Zeilenumbrüchen:

$comp = preg_split('/\s+/', $var);

Nur durch Leerzeichen trennen:

$comp = preg_split('/ +/', $var);

47
AliAvci

Das funktioniert:

$string = 'A   B C          D';
$arr = preg_split('/[\s]+/', $string);
22
schneck

Der Autor hat nach explode gefragt, damit Sie explode so verwenden können

$resultArray = explode("\t", $inputString);

Hinweis: Sie müssen doppelte Anführungszeichen verwenden, nicht einfache.

17
lucsan

Ich denke du willst preg_split :

$input = "A  B C   D";
$words = preg_split('/\s+/', $input);
var_dump($words);
10
jheddings

versuchen Sie statt explodieren preg_split: http://www.php.net/manual/de/function.preg-split.php

6
Brian Schroth

Um full width Platz zu berücksichtigen, 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 posten, deshalb habe ich dies als Antwort geschrieben.)

2
MPS

Die Antworten anderer Leute (Ben James) sind ziemlich gut und ich habe sie verwendet. Wie der Benutzer 889030 darauf hinweist, ist das letzte Arrayelement möglicherweise leer. Das erste und das letzte Array-Element können tatsächlich leer sein. Der folgende Code behandelt 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;   
}
0
Peter Schaeffer