zero lub więcej spacji oznacza, że albo każdy element będzie miał co najwyżej jeden znak, albo będziesz mieć nieskończenie wiele pustych elementów. Czy na pewno tego chcesz?
bdonlan
Tak, prawdopodobnie powinno to być „jedna lub więcej spacji”.
Odpowiedzi udzielone przez innych ludzi (Ben James) są całkiem dobre i korzystałem z nich. Jak wskazuje user889030, ostatni element tablicy może być pusty. W rzeczywistości pierwszy i ostatni element tablicy mogą być puste. Poniższy kod rozwiązuje oba problemy.
# 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, to nie ma znaczenia, możesz po prostu podzielić przestrzeń za pomocą wybuchu. Dopóki nie zechcesz użyć tych wartości, iteruj po rozstrzelonych wartościach i odrzucaj puste miejsca.
$str ="A B C D";
$s = explode(" ",$str);foreach($s as $a=>$b){if( trim($b)){print"using $b\n";}}
Odpowiedzi:
źródło
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Aby oddzielić zakładkami:
Aby oddzielić spacjami / tabulatorami / znakami nowej linii:
Aby oddzielić tylko spacjami:
$comp = preg_split('/ +/', $var);
źródło
To działa:
źródło
Autor poprosił o eksplozję, abyś mógł użyć takiego wybuchu
$resultArray = explode("\t", $inputString);
Uwaga: musisz użyć podwójnego cudzysłowu, a nie pojedynczego.
źródło
Myślę, że chcesz
preg_split
:źródło
zamiast używać eksploduj, wypróbuj preg_split: http://www.php.net/manual/en/function.preg-split.php
źródło
Aby uwzględnić przestrzeń o pełnej szerokości, taką jak
możesz rozszerzyć odpowiedź Bensa na to:
Źródła:
(Nie mam wystarczającej reputacji, aby opublikować komentarz, więc napisałem to jako odpowiedź).
źródło
Odpowiedzi udzielone przez innych ludzi (Ben James) są całkiem dobre i korzystałem z nich. Jak wskazuje user889030, ostatni element tablicy może być pusty. W rzeczywistości pierwszy i ostatni element tablicy mogą być puste. Poniższy kod rozwiązuje oba problemy.
źródło
źródło
@OP, to nie ma znaczenia, możesz po prostu podzielić przestrzeń za pomocą wybuchu. Dopóki nie zechcesz użyć tych wartości, iteruj po rozstrzelonych wartościach i odrzucaj puste miejsca.
źródło