Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] String mit mehreren Leerzeichen in Array wandeln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kurby
    hat ein Thema erstellt [Erledigt] String mit mehreren Leerzeichen in Array wandeln.

    [Erledigt] String mit mehreren Leerzeichen in Array wandeln

    Hi!

    Ich habe einen String mit mehreren Leerzeichen.

    Beispiel:

    "AAAAA BBBBB FFFF KKKKKKK"

    Nun möchte ich die einzelnen Elemente des Satzes bearbeiten. Dazu wäre es gut, wenn ich den Satz in ein Array packen könnte, mit dem ich per Index jedes Element aufraufen kann, allerdings ohne die Leerzeichen. Die sollen komplett gelöscht werden.

    Vielen Dank für kommende Hilfe!

    Michael

  • nikosch
    antwortet
    Geht einfacher. Inklusive Re-indexierung
    PHP-Code:
    $string '1111   2222    3 4444 555    666';
    $result explode(' '$string);
    $result array_diff ($result , array ('')); 

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Naja er greift auf 5 Werte zu, in meinem Beispiel Text existieren sogar 6.

    Einen Kommentar schreiben:


  • tomtaz
    antwortet
    Zitat von Flor1an Beitrag anzeigen
    Richtig, ich verstehe nicht was du gemacht hast. Bei mir werden in der foreach() Schleife alle leeren Elemente gelöscht.
    Was er gemacht hat ist ganz einfach erklärt. Er hat auf nicht mehr existente Array indexes zugegriffen, hätte er aber sofort gemerkt, wenn man am anfang seiner Scripte ein simples error_reporting setzt.

    PHP-Code:
    error_reportingE_ALL ); 

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Richtig, ich verstehe nicht was du gemacht hast. Bei mir werden in der foreach() Schleife alle leeren Elemente gelöscht.

    Einen Kommentar schreiben:


  • tomtaz
    antwortet
    Zitat von Kurby Beitrag anzeigen
    Hi Florian,
    Die Funktion löscht zwar die Leerzeichen, behält allerdings einen Array mit leeren Wert bei. Heißt also, bei dir wäre folgende Ausgabe:

    PHP-Code:
    <?php
    print("$result[0]<br>");
    print(
    "$result[1]<br>");
    print(
    "$result[2]<br>");
    print(
    "$result[3]<br>");
    print(
    "$result[4]<br>");
    Ausgabe:

    1111


    2222


    Gruß
    Michael
    Hast du diese Ausgabe schon mal mit var_dump angesehen? Die Lösung von Florian funktioniert einwandfrei, aber vielleicht hast du sein Beispiel nicht verstanden. Wenn du vor deiner Ausgabe auch noch ein error_reporting setzt weißt du was schief-gelaufen ist...

    Einen Kommentar schreiben:


  • Kurby
    antwortet
    Hi!

    Stimmt, danke. Da war ich gestern wohl etwas kurzsichtig.
    Das wird die Lösung sein

    Gruß Michael

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Zitat von Kurby Beitrag anzeigen
    Das könnte mich schon näher an die Lösung heranführen.
    preg_split kann dich nicht nur näher an die Lösung heranführen sondern ist eine mögliche Lösung

    Ich habe eine txt-Datei mit mehrere hundert Zeilen.
    Jede zeile mit mir vier Informationen. Diese vier Infos sind jewils durch mehrere Leerzeichen getrennt, sodass optisch vier Spalten entstehen. Da jede Zeile andere aber ähnliche Längen haben, gibt es verschiedene Anzahl von Leerstellen zwischen den Infos.
    Ja, das lässt sich doch wunderbar mit preg_split machen. Das erste Beispiel im Manual ist doch schon fast was du suchst...

    Einen Kommentar schreiben:


  • Kurby
    antwortet
    Hi Florian,
    Die Funktion löscht zwar die Leerzeichen, behält allerdings einen Array mit leeren Wert bei. Heißt also, bei dir wäre folgende Ausgabe:

    PHP-Code:
    <?php
    print("$result[0]<br>");
    print(
    "$result[1]<br>");
    print(
    "$result[2]<br>");
    print(
    "$result[3]<br>");
    print(
    "$result[4]<br>");
    Ausgabe:

    1111


    2222


    Gruß
    Michael

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Du kannst es doch trotzdem mit explode() machen. Erst aufteilen und dann die leeren Elemente, die entstehen wenn du mehrere Leerzeichen hintereinander hast, löschen.

    PHP-Code:
    <?php
    $string 
    '1111   2222    3 4444 555    666';
    $result explode(' '$string);
    foreach (
    $result as $key => $value) if (empty($value)) unset($result[$key]);

    // in $result sind jetzt alle Werte einzeln wie du sie möchtest

    Einen Kommentar schreiben:


  • Kurby
    antwortet
    Das könnte mich schon näher an die Lösung heranführen.

    Ich habe eine txt-Datei mit mehrere hundert Zeilen.
    Jede zeile mit mir vier Informationen. Diese vier Infos sind jewils durch mehrere Leerzeichen getrennt, sodass optisch vier Spalten entstehen. Da jede Zeile andere aber ähnliche Längen haben, gibt es verschiedene Anzahl von Leerstellen zwischen den Infos.

    Nun entwickle ich ein Skript, welches mir die Datei zeilenweise ausliest, und nur die Werte einer Zeile in eine Tabelle einer DB schreibt (Ohne Leerzeichen).

    Ich hoffe, das es da einen Weg gibt.

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Zitat von Kurby Beitrag anzeigen
    Mein Satz hat als Trenner allerdings mehrere Leerzeichen, die Anzahl der Leerzeichen ist verschieden. Deswegen wird man mit explode() nicht weit kommen.
    Wenn du dir den Manual-Eintrag zu explode anschaust, findest du dort auch einen Hinweis auf [MAN]preg_split[/MAN]. Damit kannst du anhand eines regulären Ausdrucks aufteilen....

    Aber vielleicht sagst du uns auch was du wirklich vorhast, wer weiß ob es dann nicht plötzlich ganz andere Lösungen gibt

    Einen Kommentar schreiben:


  • Kurby
    antwortet
    Jein,
    denn explode benötigt einen speziellen Trenner wie ";" oder ",".
    Auch funktioniert als Trenner " ".
    Mein Satz hat als Trenner allerdings mehrere Leerzeichen, die Anzahl der Leerzeichen ist verschieden. Deswegen wird man mit explode() nicht weit kommen.

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Suchst du eventuell [MAN]explode[/MAN]?

    Einen Kommentar schreiben:

Lädt...
X