Zeichenkette splitten
Ldi91
- php
Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?
list($a,$b,$c) =split('', $setting, 3);
geht nicht. denn da kommt
Warning: split() [function.split]: REG_EMPTY in /web/docviewer/hosts/intranet/settings.php on line 16
weil das trennzeichen lehr ist
Ich grüsse den Cosmos,
Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?
$string[0] -> erstes Zeichen
$string[1] -> zweites zeichen
$string[n] -> ntes Zeichen
Ein String kann also wie ein Array verwendet werden.
Möge das "Self" mit euch sein
echo $begrüßung;
Ein String kann also wie ein Array verwendet werden.
Ja, und dann gibt es noch str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.
Kleiner Tipp an den OP: Fast jede PHP-Handbuchseite verlinkt am Ende des beschreibenden Teils Funktionen mit ähnlicher Aufgabe. Im Falle von split() wären das beispielsweise preg_split(), spliti(), str_split(), explode(), implode(), chunk_split() und wordwrap().
echo "$verabschiedung $name";
Ich grüsse den Cosmos,
Ja, und dann gibt es noch str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.
Um das Thema mal etwas auszuweiten, ist das Programmiertechnisch relevant? In C macht es ja keinen Unterschied, da ei nString ja grundsätzlich ein Array ist.
Macht es bei PHP irgendeinen Unterschied, was Speichernutzung, Performance oder auch unvorhersehbares Verhalten betrifft?
Möge das "Self" mit euch sein
echo $begrüßung;
[...] str_split(). Das erzeugt dann ein echtes Array mit beliebig langen Zeichenkettenteilen.
Um das Thema mal etwas auszuweiten, ist das Programmiertechnisch relevant? In C macht es ja keinen Unterschied, da ein String ja grundsätzlich ein Array ist.
Array und String sind unter PHP zwei verschiedene Typen. Ein PHP-Array unterscheidet sich von Arrays anderer Sprachen vor allem dadurch, dass es mehr als nur ein simples Array ist, wie auf der verlinkten Seite in der Einleitung nachzulesen ist.
PHPs Array-Funktionen verlangen zum Arbeiten echte (PHP-)Arrays, keine Strings, auf die man Array-ähnlich zugreifen kann.
Die vom OP angegebenen Aufgabenstellung lässt sich mit str_split() als Einzeiler lösen. Der Array-ähnliche Zugriff führt zwar auch zum Ziel, aber nicht als Einzeiler.
echo "$verabschiedung $name";
Ich grüsse den Cosmos,
Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?
$string[0] -> erstes Zeichen
$string[1] -> zweites zeichen
$string[n] -> ntes ZeichenEin String kann also wie ein Array verwendet werden.
Möge das "Self" mit euch sein
thx
Hallo Ldi91,
Wie kann ich eine zeichenkette zeichen für zeichen in einen array umwandeln?
list($a,$b,$c) =split('', $setting, 3);
> geht nicht. denn da kommt
> ~~~
> Warning: split() [function.split]: REG_EMPTY in /web/docviewer/hosts/intranet/settings.php on line 16
>
weil das trennzeichen lehr ist
Die brauchbarere Umsetzung des split() von Perl ist in PHP die Funktion preg_split(). Die kann auch mit leeren Trennzeichen umgehen:
list($a, $b, $c) = preg_split('//', $setting, 3, PREG_SPLIT_NO_EMPTY);
Es ist übrigens generell empfehlenswert, die veralteten POSIX-RegEx-Funktionen durch die "moderneren" PCRE-Befehle zu ersetzen.
MffG
EisFuX