Wie kann ich einen Satz auf ein Array von Wörtern konvertieren?
Frage
Aus dieser Zeichenfolge:
$input = "Some terms with spaces between";
Wie kann ich produzieren dieses Array?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Lösung
könnten Sie verwenden explode
, split
oder preg_split
.
explode
verwendet eine feste Zeichenfolge:
$parts = explode(' ', $string);
während split
und preg_split
einen regulären Ausdruck verwenden:
$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);
Ein Beispiel, wo der reguläre Ausdruck basiert Spaltung nützlich ist:
$string = 'foo bar'; // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));
Andere Tipps
$parts = explode(" ", $str);
print_r(str_word_count("this is a sentence", 1));
Ergebnisse in:
Array ( [0] => this [1] => is [2] => a [3] => sentence )
dachte nur, dass es sich lohnen würde zu erwähnen, dass der reguläre Ausdruck Gumbo gesendete obwohl es mehr als wahrscheinlich für ausreichend meist möglicherweise nicht alle Fälle von white-space fangen. Ein Beispiel: der regulären Ausdrucks in der genehmigten Antwort Verwendung auf der Saite unter:
$sentence = "Hello my name is peter string splitter";
Vorausgesetzt, mich mit der folgenden Ausgabe durch print_r:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Wo, wie bei der Verwendung des folgenden regulären Ausdrucks:
preg_split('/\s+/', $sentence);
Vorausgesetzt, mich mit der folgenden (gewünschten) Ausgabe:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Hoffe, dass es jemand hilft bei einer ähnlichen Hürde stecken und ist verwirrt, warum.
Nur eine Frage, aber versuchen Sie json aus den Daten zu machen? Wenn ja, dann könnten Sie so etwas wie dies berücksichtigen:
return json_encode(explode(' ', $inputString));