Question

Comment puis-je faire exploser une chaîne par un ou plusieurs espaces ou des tabulations?

Exemple:

A      B      C      D

Je veux en faire un tableau.

Était-ce utile?

La solution

$parts = preg_split('/\s+/', $str);

Autres conseils

Pour séparer par des onglets:

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

Pour séparer par des espaces / onglets / retour à la ligne:

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

Pour séparer par des espaces seuls:

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

Cela fonctionne:

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

L'auteur a demandé d'exploser, vous pouvez utiliser exploser comme ça

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

. Remarque: vous devez utiliser des guillemets doubles, pas simple

Je pense que vous voulez 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 rendre compte de espace pleine largeur comme

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.)

Les réponses fournies par d'autres personnes (Ben James) sont très bons et je les ai utilisés. Comme user889030 souligne, le dernier élément de tableau peut être vide. En fait, les premiers et derniers éléments du tableau peuvent être vides. Le code ci-dessous aborde les deux questions.

# 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 diviser un espace avec exploser. Jusqu'à ce que vous voulez utiliser ces valeurs, les valeurs itérer éclatées et jeter des blancs.

$str = "A      B      C      D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){    
    if ( trim($b) ) {
     print "using $b\n";
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top